页面无刷新数据检索 @ ASP.NET+C# (1)
来源:互联网 发布:佳词网络科技集团官网 编辑:程序博客网 时间:2024/05/17 23:44
在开始之前先引进一个接口
ICallbackEventHandler:用于指示控件可以作为服务器的回调事件的目标。
它有两个公有方法 GetCallbackResult 与 RaiseCallbackEvent 分别用于返回表单处理结果 和 处理表单事件。
现在进入开始动手,本节要实现的功能是通过pubs 库中的authors 表的 au_id 字段检索 au_fname字段信息,如下:
1.新建一ASP.NET网站
2.引入接口
在默认页内添加:
<%...@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
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.");
}
}
...{
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>
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>
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);
}
...{
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();
}
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();
}
有你,一切皆有可能!
- 页面无刷新数据检索 @ ASP.NET+C# (1)
- 利用ASP.NET实现无刷新更新页面 (1)
- ASP.NET 2.0 开发无刷新页面(已试)
- ASP.NET 2.0无刷新页面新境界(转载)
- ASP.NET 2.0 开发无刷新页面
- ASP.NET 2.0,无刷新页面
- ASP.NET 2.0 开发无刷新页面
- asp.net无刷新页面跳转
- C# ASP.NET中无刷新页面 弹出对话框,并且页面跳转
- C# ASP.NET中无刷新页面 弹出对话框,并且页面跳转
- c# asp:UpdatePanel 和 asp:Repeater实现页面局部数据无刷新取得
- UpdatePanel 和 Repeater实现页面局部数据无刷新 (asp.net C#)
- ASP.NET中运用xmlhttp实现无刷新数据传递(C# and JavaScript)
- ASP.NET 2.0中实现无刷新页面
- ASP.NET 2.0,无刷新页面新境界
- ASP.NET 2.0,无刷新页面新境界!
- ASP.NET 2.0 正式版中无刷新页面的开发
- ASP.NET 2.0,无刷新页面新境界!
- 开始读《Data Structures and the Java Collections Framework》
- 写了个15位身份证号升级为18位的SQL语句
- [基础] 什么是存储器映射?
- 找不到文件或程序集名称“CrystalDecisions.Shared”,或找不到它的一个依赖项
- 我的CSDN之家
- 页面无刷新数据检索 @ ASP.NET+C# (1)
- Iterator Pattern & Composite Pattern
- 性命论
- 游戏对象的实现 (补)
- 我对汉语编程的浮浅看法(汉语编程软件应以致用为目的)
- 生活需要一点感动
- 成功的从fedora 7升级到了fedora 8
- 硬盘结构及其分区简介
- 学习jbpm部署部分(转载)