62,074
社区成员
发帖
与我相关
我的任务
分享
<%@ Page language="c#" %>
<%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
<html>
<head>
<script language="C#" runat="server">
// 接口实现
public string GetCallbackResult() {
return "0";
}
public void RaiseCallbackEvent(string eventArgument) { }
</script>
<script type="text/javascript">
var flg;
function CallServer(){
var arg = "abc";
<%=ClientScript.GetCallbackEventReference(this, "arg", "JsRecieve", null, null, true) %>;
}
function JsRecieve(ret){
flg = ret;
}
function SubmitCheck(){
CallServer();
alert(flg);// 第一次运行,这里总是弹出undefined
}
</script>
</head>
<body>
<form runat="server">
<input type="button" onclick="SubmitCheck();" value="test">
</form>
</body>
</html>
if (setRequestHeaderMethodExists) {
xmlRequest.onreadystatechange = WebForm_CallbackComplete;
callback.xmlRequest = xmlRequest;
xmlRequest.open("POST", theForm.action, true);// 最后一个参数为true,表示异步执行回调
xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlRequest.send(postData);
return;
}
public partial class ClientCallbacks : System.Web.UI.Page,ICallbackEventHandler
{
protected string txtUserInfo; //用户基本信息
protected void Page_Load(object sender, EventArgs e)
{
//动态注册JavaScript
String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context");
String callbackScript;
callbackScript = "function CallServer(arg, context)" + "{ " + cbReference + "} ;";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);
}
//引发Callback事件处理
public void RaiseCallbackEvent(string txtFirstName)
{
if (txtFirstName != null)
{
SqlConnection conn = new SqlConnection("data source=.;initial catalog=Northwind;Integrated Security=True");
conn.Open();
SqlCommand cmd = new SqlCommand("select EmployeeID,FirstName,City,Address from Employees where FirstName=@FirstName", conn);
cmd.Parameters.Add("@FirstName", SqlDbType.NVarChar, 10).Value = txtFirstName;
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
txtUserInfo = "员工代号:" + dr["EmployeeID"] + " ,";
txtUserInfo += "姓名:" + dr["FirstName"] + " ,";
txtUserInfo += "居住城市:" + dr["City"] + " ,";
txtUserInfo += "地址:" + dr["Address"].ToString().Replace("\r\n","") + " ,";
txtUserInfo += "服务器查询时间:" + DateTime.Now.ToLongTimeString();
}
else
{
if (String.IsNullOrEmpty(txtFirstName))
{
txtUserInfo = "请输入姓名";
}
else
{
txtUserInfo = "查无此人!";
}
}
cmd.Dispose();
dr.Dispose();
conn.Dispose();
}
}
//返回Callback结果
public string GetCallbackResult()
{
return txtUserInfo; //返回员工基本信息
}
<script type="text/JavaScript">
function DoSearch()
{
var txtFirstName = document.getElementById("txtUserName");
CallServer(txtFirstName.value, "");
}
function ReceiveServerData(txtUserInfo)
{
Results.innerText = txtUserInfo;
}
setInterval('DoSearch()',1000);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
姓名:<input id="txtUserName" type="text" /><br />
<span ID="Results" style="background-color: pink; width: 500px;"></span>
</div>
</form>
<script language="C#" runat="server">
// 接口实现
public string GetCallbackResult()
{
return "0";
}
public void RaiseCallbackEvent(string eventArgument) { }
</script>
<script type="text/javascript">
var flg;
function CallServer(){
var arg = "abc";
<%=ClientScript.GetCallbackEventReference(this, "arg", "JsRecieve", null, null, true) %>;
}
function JsRecieve(ret){
flg = ret;
alert(flg);//这句要放在这里
}
function SubmitCheck(){
CallServer();
//alert(flg);// 第一次运行,这里总是弹出undefined
}
</script>