【问题标题】:Find Control Asp.net查找控制 Asp.net
【发布时间】:2010-10-29 11:53:45
【问题描述】:

我已经创建了

<input type="checkbox" id="test" > 

使用文字。现在我想得到这个控件,所以我可以检查它是否被选中。如何在 aspx.cs 页面中找到这个控件?

【问题讨论】:

  • 你能提供一些细节吗
  • 我正在使用面板...比我在运行时创建一个文字并分配 literal.text = ".. 现在我想找到复选框是否被选中我怎么能找到它?我找不到它..我尝试使用 findcontrol...有什么帮助吗?

标签: asp.net findcontrol


【解决方案1】:

如果你想找到对文件后面代码的控制,那么你应该将它设置为 runat="server",

literal.text = "<input type=\"checkbox\" id=\"forum1\" runat=\"server\">";



HtmlInputCheckBox test = (HtmlInputCheckBox) Page.FindControl("test");

但是每当页面要回发时,您就会失去此控件的状态。

愿这将为您提供正确的解决方案 http://www.codeasp.net/blogs/SumitArora/microsoft-net/841/value-of-dynamic-textbox-lost-on-postback

您可以使用页面初始化事件来生成控件

protected override void OnInit(EventArgs e)
{ 
  HtmlInputCheckbox test = new HtmlInputCheckbox ();
  test.id= "test";                 
  pnlControl.Controls.Add(test);
  base.OnInit(e);
}

【讨论】:

    【解决方案2】:

    如果您以编程方式将其创建为文字,则无法使用 FindControl 来查找它。当表单回传时,可以使用表单集合查看值是否回传,如:

    Request.Form["test"]
    

    Request["test"]
    

    如果用户不选中复选框,则表单值将不存在,这是使用隐藏字段来解决的问题。

    HTH。

    【讨论】:

      【解决方案3】:

      使用FindControl 搜索您已为其指定id 参数的服务器控件。

      Control ctrl = FindControl("TextBox1");
      

      【讨论】:

        【解决方案4】:

        试试

        Page.Controls.FindControl() 
        

        Page.YourFormNameHEre.Controls.FindControl()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-05-20
          • 1970-01-01
          • 2023-04-08
          • 2021-11-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多