后台如何通过Request取得多个含有相同name的控件的值?
2012-02-25 20:14
381 查看
在Asp.net开发中,所有html控件的值都是可以在服务器端用后台代码的Request[name]来获取其值的。但如果有多个相同name的Html控件提交到后台,怎么分别取各个控件的值呢?而多数情况下这些控件的个数是不定的。
例如在填写简历表单中,“工作经历”这项内容是可以让用户动态增加的,可能有的用户有3条工作经历,有的用户有5条工作经历。当然,我们讨论这个问题的前提是由用户动态增加后一起提交到服务器,而不是采用增加一条提交一条的方式。例如:
当用户点“添加”时就通过Javascript动态生成元素插入到document里,而这些添加的元素都保持name统一。我们可以把问题简化一下,例如以下代码submit到服务器后在后台如何获取name为“txt”的textbox的数量以及如何获取各自的值:
<input type=”text” name=”txt” >
<input type=”text” name=”txt” >
<input type=”text” name=”txt” >
……
一开始想到的是用Request[“txt”]、Request.Form[“txt”]以及Request.Params[“txt”],这些都将返回所有name为“txt”的元素的值,并用逗号分隔,例如返回 “aaa,bbb,ccc” ,这表示这三个textbox的值分别是aaa,bbb和ccc。但是如果用户在某个控件里输入的值就包含逗号本身,那就麻烦了。
最好的解决方法就是用我以前没有太注意过的方法Request.Params.GetValues( string name)。它返回的是一个数组,所以就不用担心逗号的问题了。例如这个例子中就可以用这个方法:
string[] txtArr = Request.Params.GetValues("txt");
这下就可以通过txtArr.length来获知有多少个name为“txt”的控件了,并能很方便的遍历各个控件的值。
http://www.cnblogs.com/qguohog/archive/2009/10/29/1592450.html
例如在填写简历表单中,“工作经历”这项内容是可以让用户动态增加的,可能有的用户有3条工作经历,有的用户有5条工作经历。当然,我们讨论这个问题的前提是由用户动态增加后一起提交到服务器,而不是采用增加一条提交一条的方式。例如:
当用户点“添加”时就通过Javascript动态生成元素插入到document里,而这些添加的元素都保持name统一。我们可以把问题简化一下,例如以下代码submit到服务器后在后台如何获取name为“txt”的textbox的数量以及如何获取各自的值:
<input type=”text” name=”txt” >
<input type=”text” name=”txt” >
<input type=”text” name=”txt” >
……
一开始想到的是用Request[“txt”]、Request.Form[“txt”]以及Request.Params[“txt”],这些都将返回所有name为“txt”的元素的值,并用逗号分隔,例如返回 “aaa,bbb,ccc” ,这表示这三个textbox的值分别是aaa,bbb和ccc。但是如果用户在某个控件里输入的值就包含逗号本身,那就麻烦了。
最好的解决方法就是用我以前没有太注意过的方法Request.Params.GetValues( string name)。它返回的是一个数组,所以就不用担心逗号的问题了。例如这个例子中就可以用这个方法:
string[] txtArr = Request.Params.GetValues("txt");
这下就可以通过txtArr.length来获知有多少个name为“txt”的控件了,并能很方便的遍历各个控件的值。
http://www.cnblogs.com/qguohog/archive/2009/10/29/1592450.html
相关文章推荐
- 后台如何通过Request取得多个含有相同name的控件的值?
- 后台如何通过Request取得多个含有相同name的控件的值?
- 后台如何通过Request取得多个含有相同name的控件的值?
- dom4j如何取得name相同的节点
- 后台C#代码获取html控件的值使用的Request.Form["name"] 中间的那个应该是空间的name 而不是id
- Flex中如何通过设定headerStyleName样式在Accordion控件中使用嵌入字体的例子
- Wxpython如何通过控件ID取得控件
- dom4j如何取得name相同的节点
- 后台取得非服务器控件的一种方法(Request.Form.GetKey(i))
- Ajax中如果url中含有中文,如何在后台中正确取得(针对IE和火狐)
- C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- ASP.NET中多个相同name的控件在后台正确取值
- [转载]C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- Flex中如何通过tabStyleName, tabWidth和textAlign样式,设置TabBar控件内文本对齐方式
- 【asp.net 】使用js结合hidden控件实现在后台运行一段程序后提示确认,确认通过后继续执行后台代码~~~
- 如何通过代码设置控件在 Grid 里的行和列?
- ASP.NET 如何取得 Request URL 的各个部分
- 利用HttpWebRequest通过POST Json数据在.net后台实现不同平台间的数据传输
- jquery怎么取得有好几个并且name是相同的值
- jquery的ajax post 方法传值到后台,无法通过HttpServletRequest得到