![](/img/trans.png)
[英]How to set value of <input type=“hidden”> in asp .net page_load without using runat=“server”
[英](ASP.NET) Changing an input at the start of Page_Load() and then retriving the input value after form submit gives the old value
我有一个应该具有默认值的表单,用户可以决定在某些字段中进行更改。 输入设置如下:
<input type="text" id="username" clientidmode="static" runat="server" />
我在 Page_Load() 的开头设置默认数据,如下所示:
username.Value = "test"
我稍后会像这样在 if(isPostBack) 中获得这些值:
string sUsername = username.Value;
这个想法是,他们将能够更改有关用户的某些值,或者如果他们不想更改该字段,则只需保留默认值。
问题是,当我在 if(isPostBack) 中获取字段值时,我只是获取在 Page_Load() 开始时设置的值,即使用户更改了表单值。
我究竟做错了什么?
这是重现此问题的简单方法。 创建一个 asp.net 项目并添加一个 WebForm。
然后将其添加到页面:
<input type="text" id="username" runat="server" />
<input type="submit" />
并将其添加到后面的代码中:
protected void Page_Load(object sender, EventArgs e)
{
username.Value = "Test";
if (IsPostBack)
{
string sUsername = username.Value;
}
}
你的变量声明应该在里面!IsPostBack
if(!IsPostBack)
{
username.Value = "test"
}
问题是,一旦您单击其他内容,您的页面加载事件就会触发并且您的页面首先加载,然后您的按钮单击事件就会发生。
您将 !IsPostBack 放在了错误的位置。 您需要在 !IsPostBack() 内的 Page_Load() 开始处保留默认数据,然后在任何 button_click 事件内的任何您想要的地方获取值。
虽然,如果您可以更好地查看代码,那将很容易分辨。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.