转自:http://blog.csdn.net/zyaln/article/details/3464892
客户端用js改变asp.net控件的值,在服务器端不能直接用xx.Text获取到改变后的值,这是因为asp.net web页面数据是保存在ViewState里的,在客户端修改了内容,ViewSate没有修改。所以到服务器还是读旧数据。
1.
用<input type=hidden id="hd_value" runat="server"/>Hidden在客户端改变数据能在服务器端读到改后的数据。或者使用<asp:HiddenField ID="hfProductCategoryID" runat="server" /> 客户端改变var hfID="<%=this.hfProductCategoryID.ClientID %>" 服务端可以用hfProductCategoryID.Text取到
2.
string s1=Request.Form.Get(ddlProvince.UniqueID);
string s2 = Request[ddlProvince.UniqueID];
这样也可以取到,ddlProvince.UniqueID实际上就是ddlProvince在客户端的name属性值
假如服务器控件名为txtbox1,
VS2005中,可以这样取值:
string str = Request.Form[txtbox1.UniueID];
转自:http://www.cnblogs.com/qiaohd/archive/2012/03/23/2413660.html
开发一个asp.net的页面遇到了TextBox设置了ReadOnly属性,在js中赋值后,后台代码取不到值的情况,经过在网上查找,找到了一下几个处理办法。
收藏起来。
1、不设置ReadOnly,设置onfocus=this.blur()
C#代码
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
文本框不变灰色,但也无法手动修改内容,可以在后台通过Text属性正常赋值取值
2、设置了ReadOnly属性后,通过Request来取值,如下:
前台代码:
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="True" ></asp:TextBox>
后台代码:
string Text = Request.Form["TextBox1"].Trim();
string Text = Request.Form["TextBox1"].Trim();
3、在Page_Load()正设置文本框的只读属性,能正常读取,如下:
C#代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TextBox1.Attributes.Add("readonly","true");
}
}
作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com 联系我,非常感谢。