在开始之前先引进一个接口
ICallbackEventHandler:用于指示控件可以作为服务器的回调事件的目标。
它有两个公有方法 GetCallbackResult 与 RaiseCallbackEvent 分别用于返回表单处理结果 和 处理表单事件。
现在进入开始动手,本节要实现的功能是通过pubs 库中的authors 表的 au_id 字段检索 au_fname字段信息,如下:
1.新建一ASP.NET网站
2.引入接口
在默认页内添加:
3.实现 ICallbackEventHandler 接口
如:
public
partial
class
_Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
...
{
string ICallbackEventHandler.GetCallbackResult()
...{
throw new Exception("The method or operation is not implemented.");
}
void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
...{
throw new Exception("The method or operation is not implemented.");
}
}
用于处理客户端返回的信息与返回处理后的结果给客户端,但是这之前客户端与服务器端并不知道对方在做什么,所以这以前得交给客户端脚本处理,效验数据或状态处理。
4.添加客户端脚本
之前页面中有一呈现数据的 Table1
<
script type
=
"
text/javascript
"
>
var
valueC
=
""
;
function
ReceiveServerData(rvalue, context)
...
{
var x=document.getElementById('Table1').rows;
var y=x[1].cells;
y[0].innerHTML=valueC;
y[1].innerHTML=rvalue;
}

function
SetValue()
...
{
valueC=document.getElementById("Text1").value;
}
</
script
>
添加一按钮和一文本
<
div
>
au_id:
<
input
id
="Text1"
type
="text"
/>
<
input
id
="Button1"
type
="button"
value
="查询"
onclick
="SetValue();CallServer(valueC)"
/></
div
>
</
form
>
到这里我们已经建设起了一座客户端与服务器端之间的直通道路,唯一等待的是验收了。
5.注册客户端脚本
void
Page_Load(
object
sender, EventArgs e)
...
{
String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg",
"ReceiveServerData", "context");
String callbackScript = "function CallServer(arg, context) {" +
cbReference + "; }";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"CallServer", callbackScript, true);
}
6.如何处理,为谁处理
SqlConnection conn
=
new
SqlConnection(strconn);
string
value ;
public
string
GetCallbackResult()
...
{
return value;
}

public
void
RaiseCallbackEvent(
string
eventArgument)
...
{
SqlCommand comm = new SqlCommand("SELECT [au_fname] FROM [authors] WHERE ([au_id] = '" + eventArgument + "')", conn);
conn.Open();
SqlDataReader dr= comm.ExecuteReader();
if(dr.Read())
value= dr.GetValue(0).ToString();
conn.Close();
}
有你,一切皆有可能!
236

被折叠的 条评论
为什么被折叠?



