C# 使用ASP.NET从输入类型文本中检索键入的新值
我在检索文本类型的输入元素时遇到了问题,以前在某些C#代码中设置了该元素,例如: foo.aspx中的HTML元素定义为:C# 使用ASP.NET从输入类型文本中检索键入的新值,c#,asp.net,.net,webforms,C#,Asp.net,.net,Webforms,我在检索文本类型的输入元素时遇到了问题,以前在某些C#代码中设置了该元素,例如: foo.aspx中的HTML元素定义为: <input type="text" class="form-control" id="name" runat="server" /> 当has\u something为真时,如果用户在输入中输入Y的值,那么现在很重要,当我这样做时(代码也来自foo.aspx.cs): 我没有在输入id=name上获取当前值,比如说,我输入了Y,而是获取了在Page\u Lo
<input type="text" class="form-control" id="name" runat="server" />
当has\u something
为真时,如果用户在输入中输入Y的值,那么现在很重要,当我这样做时(代码也来自foo.aspx.cs):
我没有在输入id=name上获取当前值,比如说,我输入了Y
,而是获取了在Page\u Load()
时间设置的旧值
我错过了什么?我应该使用Javascript来设置值吗?
如何解决此问题?我已编辑了原始回复以更正答案 当页面单击按钮执行回发时,页面加载函数中的代码正在执行
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bool has_something = ...;
if (has_something)
name.Value = "X";
}
}
我觉得你很困惑,它是一个
System.Web.UI.HtmlControls.HtmlInputText
而不是System.Windows.Forms.TextBox
。没有文本
属性…确切地说。我也刚刚发现我的错误:)我很累
protected void go_Click(object sender, EventArgs e)
{
if (!IsValid)
return;
string Name = name.Value;
Debug.WriteLine(string.Format("name = {0}", Name)); //X
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bool has_something = ...;
if (has_something)
name.Value = "X";
}
}