Default.aspx的html


<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function GetDate()
{
UseCallBack();
}
function GetDateFromServer(TextBox1,context)
{
document.forms[0].TextBox1.value = TextBox1;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<input id="Button1" type="button" value="button" onclick="GetDate()" /><br />
<asp:Label ID="Label1" runat="server" Text="Label" Width="275px"></asp:Label></div>
</form>
Default.aspx.cs


public partial class _Default : System.Web.UI.Page ,System.Web.UI.ICallbackEventHandler
{
private string _UseCallback = null;
protected void Page_Load(object sender, EventArgs e)
{
// 获得客户端回调方法GetDateFromServer的引用
string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "GetDateFromServer", "context");
// 生成一个JavaScript脚本来触发回调
string cbScript = "function UseCallBack(arg,context){" + cbReference + ";}";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "UserCallback", cbScript, true);
this.Label1.Text = DateTime.Now.ToString();
}
public string GetCallbackResult()
{
return _UseCallback;
}
public void RaiseCallbackEvent(string eventArgument)
{
_UseCallback = DateTime.Now.ToString();
}
}
首先页面运行时 Lable1的text会获得当前时间。
然后点击按钮 ,Textbox1的值也获得当前时间,但是Labl1的值没变,注意页面没有刷新。