【问题标题】:how can i get value of all controls created in runtime in C# asp.net如何获取在 C# asp.net 中运行时创建的所有控件的值
【发布时间】:2014-01-26 20:55:36
【问题描述】:

//这个函数创建多个htmlcontrol,id为fileid1、fileid2、fileid3等“content_data”是一个html div id。

protected void enter_rec_btn_Click(object sender, EventArgs e) {

    String control_data="";
    for (Int64 x = 1; x <= 4; x++)
    {
        control_data = control_data + "<input type='text' id='fileid" + x + "' runat='server' /> ";
    }

    content_data.InnerHtml = control_data;
}

//现在在另一个btn点击访问控件

      for(Int64 i=1;i<=4;i++)
       {
        HtmlInputText text1,
        text1 = (System.Web.UI.HtmlControls.HtmlInputText)Page.FindControl("fileid" + i);
        Response.write(text1.value); 
       }

但它找不到控件。我已经包含使用 System.Web.UI.HtmlControls。 帮帮我..

提前致谢

【问题讨论】:

  • 你为什么要使用 Int64 来处理上限为 4 的循环变量?
  • 您添加的是字符串,而不是控件。

标签: c# asp.net


【解决方案1】:

您在 Div 中呈现一个字符串,而实际上并未将控件添加到网页,因此查找控件将不起作用,您可能必须阅读您正在写入的 Div 的 html 才能获取控件。

或者向页面添加一个实际的控件,以便能够使用 findcontrol。

即 MyPannel.controls.add(new ctrl.....

在这里找到了很好的例子:) http://learning2code.net/Learn/2009/8/12/Adding-Controls-to-an-ASPNET-form-Dynamically.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多