如果之前设置了一些C#代码,我无法检索文本类型的输入元素,例如:
foo.aspx 中的HTML元素定义为:
<input type="text" class="form-control" id="name" runat="server" />
从代码后面 foo.aspx.cs ,有类似这样的内容:
protected void Page_Load(object sender, EventArgs e)
{
bool has_something = ...;
if(has_something)
name.Value = "X";
}
当has_something
为真时,如果用户在输入中输入Y值,当我执行类似的操作时( foo.aspx.cs 的代码),现在很重要:
protected void go_Click(object sender, EventArgs e)
{
if (!IsValid)
return;
string Name = name.Value;
Debug.WriteLine(string.Format("name = {0}", Name)); //X
}
而不是在输入id = name上获取当前值,比如说,我已输入Y
,而是在Page_Load()
时设置旧值。
我错过了什么?我应该使用Javascript来设置值吗? 我该如何解决这个问题?
答案 0 :(得分:2)
我已编辑原始回复以更正答案。
当页面在按钮点击时执行回发时,正在执行Page_Load函数中的代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bool has_something = ...;
if (has_something)
name.Value = "X";
}
}