ASP.NET 2.0 . (callback scripts ). , , .
, , , . , , , , , , .
, , . , , . , ( , ). ASP.NET 1.x . (AutoPostBack="True").
protected void ddStatic_SelectedIndexChanged(object sender, EventArgs e)
{ //
ddStatic.Items[ddStatic.SelectedIndex].Value
//
}
ASP.NET 2.0, , . , , .
, , , , . , ASP.NET 2.0 . ICallbackEventHandler : RaiseCallbackEvent, GetCallbackResult . .aspx .
<script>
function UpdateText(result, context)
{ dSpan.innerText = result;
}
</script>
<asp:DropDownList ID="ddDynamic" runat="server" />
<br /><span id="dSpan" style="font-weight: bold;" />
|
|
, , ICallbackEventHandler.
public partial class ScriptCallback_aspx: System.Web.UI.Page, System.Web.UI.ICallbackEventHandler { }
, , :
public virtual void PrepareCallbackEvent(string )
public virtual string RenderCallbackResult()
private string EventArgument = "";
public void PrepareCallbackEvent(string eventArgument)
{ EventArgument = eventArgument;
}
public string RenderCallbackResult()
{ return EventArgument; // string
}
.
protected void Page_Load(object sender, EventArgs e)
{ //
string callbackFunction =
Page.ClientScript.GetCallbackEventReference (this,
"document.all['ddDynamic'].value", "UpdateText",
"null"
);
//
//
ddDynamic.Attributes["onchange"] = String.Format("javascript:{0}",
callbackFunction);}
GetCallbackEventReference ClientScriptManager , , , , . MSDN VS - Object Browser.
, . , ASP.NET, .
// ,
<select name="ddStatic"onchange="javascript:setTimeout('__doPostBack(\'ddStati
c\',\'\')', 0)"id="ddStatic"></select>
//
<select name="ddDynamic" id="ddDynamic"onchange="javascript:WebForm_DoCallback('__Page',document.all['ddDynamic'].value,UpdateText,null,null,false)">
doPostBack .
var theForm = document.forms['frmCallBack'];
function __doPostBack(eventTarget, eventArgument)
{ if (theForm.onsubmit == null || theForm.onsubmit())
{ theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
. WebForm_DoCallback , doPostBack, , . , DOM Microsoft.XMLHTTP.
, ASP.NET 2.0 , WebResource.axd, HTML .