获取引发PostBack的对象(获取引发回送的控件)
2010-08-30 16:51
267 查看
既然asp.net能把客户端的操作包装事件, PostBack之后从Page.Request.Forms里肯定能找到到底是哪个控件的提交.
看了一下asp.net生成的html, 我发现对客户端来说, 引发postback的方法有两种, 一种是submit按钮, 一种是调用__doPostBack()
例如Button的html代码是
<input type="submit" name="Button1" value="提交" id="Button1" />
而LinkButton是
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>
对于在客户端调用__doPostBack的控件来说, 从
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
可以看到控件名被保存在.__EVENTTARGET的hidden里. 可以通过Page.Request.Form["__EVENTTARGET"]得到控件的ClientID
而对于submit, 就要在VS.NET里用调试窗口一个个查看Request.Forms的变量值了. 原来他的ClientID是Page.Request.Form的最后一个Key, 可以通过Page.Request.Form.AllKeys[Page.Request.Form.AllKeys.Length - 1]得到
如果还要得到这个控件的引用, 调用FindControl方法就可以了.
http://www.cnblogs.com/yok/archive/2005/01/19/94356.html
看了一下asp.net生成的html, 我发现对客户端来说, 引发postback的方法有两种, 一种是submit按钮, 一种是调用__doPostBack()
例如Button的html代码是
<input type="submit" name="Button1" value="提交" id="Button1" />
而LinkButton是
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>
对于在客户端调用__doPostBack的控件来说, 从
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
可以看到控件名被保存在.__EVENTTARGET的hidden里. 可以通过Page.Request.Form["__EVENTTARGET"]得到控件的ClientID
而对于submit, 就要在VS.NET里用调试窗口一个个查看Request.Forms的变量值了. 原来他的ClientID是Page.Request.Form的最后一个Key, 可以通过Page.Request.Form.AllKeys[Page.Request.Form.AllKeys.Length - 1]得到
如果还要得到这个控件的引用, 调用FindControl方法就可以了.
http://www.cnblogs.com/yok/archive/2005/01/19/94356.html
相关文章推荐
- 获取引发PostBack的对象
- Flex编程注意之直接获取某个组件的对象(this[]用法)通过id获取控件
- 获取引发页面回传事件的控件
- javascript客户端遍历控件与获取父容器对象示例代码
- C#根据控件名获取控件对象
- 在GridView控件中的HeaderTemplate模板上添加的CheckBox控件无法引发AutoPostback事件,或无规律的引发,不正常的引发
- Uiautomator获取控件对象之instance
- android通过反射代替R来获取控件对象
- javascript客户端遍历控件和怎么获取父容器对象
- wpf 根据控件的Name 通过反射获取控件对象
- 获取服务器端控件的客户端对象
- document.getElementById获取控件对象为空的解决方法
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 为什么Jquery有时候根据模板中控件的Id但是获取不到该控件的对象
- 如何识别哪个控件引发了页面提交表单(postback)?
- 在FormView控件中嵌套数据绑定控件的问题,以及从一个对象中反射获取属性值的简单办法
- 利用控件名称获取控件对象
- C#根据控件名获取控件对象
- WPF中TreeView控件如何获取选中的TreeViewItem对象?
- 学习使用TreeView 控件的TreeNode 对象来获取选中了CheckBox的节点!