Мне нужно вызвать код сервера ASP.Net с клиента. Поскольку я нахожусь в пользовательском элементе ascx, я не могу использовать [webmethod] + PageMethods, так как это работает только на страницах ASPX.ASP.Net Client-callback не работает с элементом управления ASCX
Следующий вариант, который, как я думал, будет работать, - это создание клиента-обратного вызова вручную. Используя этот метод, клиент успешно вызовет код сервера, но клиент не получит обратный вызов. Это мой код для создания блоков сценариев на стороне клиента:
protected void Page_Load(object sender, EventArgs e)
{
String strJSCallbackPrefix = this.ClientID;
ClientScriptManager cm = Page.ClientScript;
String cbReference = cm.GetCallbackEventReference(this, "arg", strJSCallbackPrefix + "ReceiveServerData", "context");
String callbackScript = "function " + strJSCallbackPrefix + "CallServer(arg, context){" + cbReference + "; }";
cm.RegisterClientScriptBlock(this.GetType(), strJSCallbackPrefix + "CallServer", callbackScript, true);
String strReceiveServerData = "function " + strJSCallbackPrefix + "ReceiveServerData(arg, context){document.getElementById('btnCancel').value='thisandthat';}";
cm.RegisterClientScriptBlock(this.GetType(), strJSCallbackPrefix + "ReceiveServerData", strReceiveServerData, true);
Button2.OnClientClick = strJSCallbackPrefix + "CallServer('test message',1); " + "return false;";
}
public string GetCallbackResult()
{
return returnValue;
}
public void RaiseCallbackEvent(string eventArgument)
{
returnValue = "11223" + eventArgument;
}
Кто-нибудь есть какие-либо идеи, почему вызов клиента обратно не уволят?
Как уже упоминалось выше, у меня ограниченный доступ к странице aspx, поскольку она находится в среде, управляемой контентом. Вот почему я стараюсь, чтобы все было аккуратно заправлено в usercontrol. – Max