使用ASP.NET检索从输入类型文本键入的新值

时间:2016-03-15 17:07:20

标签: c# asp.net .net webforms

如果之前设置了一些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来设置值吗? 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我已编辑原始回复以更正答案。

当页面在按钮点击时执行回发时,正在执行Page_Load函数中的代码。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bool has_something = ...;
            if (has_something)
                name.Value = "X";
        }
    }