问题描述
用了母版之后表单ID都会更改规律是ID变成ctl00_contentMaster_IDname变成ctl00$contentMaster$name同一个页面中可以使用ClientID来获取改名后表单的ID但如果表单提交到其他页面请问应该如何获取ID呢?我现在的做法是直接按照规律添加ctl00$contentMaster$这一串到原name上然后再Request.Form["XXX"]但我希望能有方法直接取到更改后的名字,而不是这样手工改名字请问有什么方法可以实现吗?
解决方案
解决方案二:
Stringuid=this.txtBirth.UniqueID;Stringvalue=Request.Form[uid].Trim();
解决方案三:
在页面的头部加上ClientIDMode="Static"或在每个控件里加上ClientIDMode="Static"这样控件的id就不会自动加模版前缀了如:<asp:GridViewID="grd_Account"runat="server"AllowPaging="True"AutoGenerateColumns="False"DataKeyNames="AccountNumber"DataSourceID="sds_account"Height="63px"Width="676px"PageSize="5"ClientIDMode="Static"><Columns><asp:TemplateFieldHeaderText="AccountNumber"SortExpression="AccountNumber"><ItemTemplate><asp:LabelID="Label1"runat="server"Text='<%#Bind("[AccountNumber]")%>'ClientIDMode="Static"></asp:Label></ItemTemplate></asp:TemplateField></Columns></asp:GridView>
解决方案四:
引用2楼gxingmin的回复:
在页面的头部加上ClientIDMode="Static"或在每个控件里加上ClientIDMode="Static"这样控件的id就不会自动加模版前缀了如:<asp:GridViewID="grd_Account"runat="server"AllowPaging="True"AutoGenerateColumns="False"DataKeyNames="AccountNumber"DataSourceID="sds_account"Height="63px"Width="676px"PageSize="5"ClientIDMode="Static"><Columns><asp:TemplateFieldHeaderText="AccountNumber"SortExpression="AccountNumber"><ItemTemplate><asp:LabelID="Label1"runat="server"Text='<%#Bind("[AccountNumber]")%>'ClientIDMode="Static"></asp:Label></ItemTemplate></asp:TemplateField></Columns></asp:GridView>
谢谢,不过可惜我这里的环境是net2.0,没有这功能啊...
解决方案五:
引用1楼FoxDave的回复:
Stringuid=this.txtBirth.UniqueID;Stringvalue=Request.Form[uid].Trim();
谢谢不过你这里发送和接收是同一个页面的吧?我希望的是提交表单到其他页面,在其他页面Request.Form[]
解决方案六:
换用ajax提交吧。
解决方案七:
在asp.net中谁让你用Request.Form["XXX"]来读取asp.net服务器控件的数据了?你从谁那里学来的Request.Form["XXX"]这种东西?在服务器端触发的事件处理程序中访问服务器控件,人家aspnet处理好了,值自动就赋值给控件了,你直接读取控件的属性。谁让你读Request.Form["XXX"]???
解决方案八:
引用4楼jewely的回复:
不过你这里发送和接收是同一个页面的吧?我希望的是提交表单到其他页面,在其他页面Request.Form[]
其它页面,在asp.net中需要回发到当前页面,然后当前页面处理了各种必要的数据之后(因为只能在当前页面自动化处理控件值),使用Response.Redirect(....)重定向到其它页面。你所谓的“提交到其它页面”,是15年前的asp的做法。那个时候的程序是在各种页面之间跳来跳去地。它跟asp.net根本不同。如果你不是从15年前的asp学的,那么就是看的是别的什么web编程平台里边比较低级的开发教程。如果你要照着它去开发,那么压根就不应该学习asp.net。因为asp.net的核心就是页面的控件的自动维系状态改变的机制,而不是跳转到别的页面去处理。
解决方案九:
引用7楼sp1234的回复:
Quote: 引用4楼jewely的回复:
不过你这里发送和接收是同一个页面的吧?我希望的是提交表单到其他页面,在其他页面Request.Form[]其它页面,在asp.net中需要回发到当前页面,然后当前页面处理了各种必要的数据之后(因为只能在当前页面自动化处理控件值),使用Response.Redirect(....)重定向到其它页面。你所谓的“提交到其它页面”,是15年前的asp的做法。那个时候的程序是在各种页面之间跳来跳去地。它跟asp.net根本不同。如果你不是从15年前的asp学的,那么就是看的是别的什么web编程平台里边比较低级的开发教程。如果你要照着它去开发,那么压根就不应该学习asp.net。因为asp.net的核心就是页面的控件的自动维系状态改变的机制,而不是跳转到别的页面去处理。
我是02年从jsp转到asp和php的,14年才接触.net真的不知道form已经不提倡使用了,因为我看的各种NET书籍都还是这样讲解的其实我这样使用的也不多但现在要用ajax把表单发送到ashx页面不知道ashx页面里不用request.form的话,应该如何取得前端页面的表单呢谢谢
解决方案十:
引用4楼jewely的回复:
Quote: 引用1楼FoxDave的回复:
Stringuid=this.txtBirth.UniqueID;Stringvalue=Request.Form[uid].Trim();谢谢不过你这里发送和接收是同一个页面的吧?我希望的是提交表单到其他页面,在其他页面Request.Form[]
为什么要提交到其他页面去?你如果想用其他的页面处理就传参吧
解决方案十一:
不管有没有母版页,都不用request的.......撸主明显是从ASP转到ASP.NET的要获取某个textbox的值,直接用该textbox的ID.Text就好比如在子页test.aspx里(该test.aspx)有个母版页,有个<asp:textboxid="textbox1"></asp>要获取这个textbox的输入值,直接在text.aspx.cs里用textbox1.text就好,你管带上母版页后编译出来的input的id或name是啥