Je dois appeler le code côté serveur ASP.Net du client. Parce que je suis dans un contrôle utilisateur ascx je ne peux pas utiliser [webmethod] + PageMethods car cela ne fonctionne que sur les pages ASPX.ASP.Net Le rappel du client ne fonctionne pas à partir du contrôle ASCX
La prochaine option que je pensais travailler était la création manuelle d'un callback client. En utilisant cette méthode, le client appellera avec succès le code du serveur, mais le client ne recevra pas le rappel. Ceci est mon code pour la mise en place des blocs de script côté client:
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;
}
Est-ce que quelqu'un a des idées pour lesquelles l'appel client ne reçoit pas riposté?
Comme mentionné ci-dessus, j'ai un accès limité à la page ASPX parce que c'est dans un environnement géré par le contenu. C'est pourquoi j'essaye de garder tout soigneusement rangé dans un contrôle d'utilisateur. – Max