【问题标题】:How will I get a dynamic control in an aspx page?如何在 aspx 页面中获得动态控件?
【发布时间】:2013-10-22 23:04:32
【问题描述】:

我正在为我的公司开展一个项目。在那里我遇到了一个问题。因此,我将展示一个示例,说明我打算做什么以及我不能做什么。

在我的 aspx 页面中,我有按钮和占位符。例如

 <asp:Button ID = "brnClickme" runat = "server" Text = "Click Me"onclick="brnClickme_Click" />
  <asp:PlaceHolder ID = "PH" runat = "server"></asp:PlaceHolder>

在我的 aspc.cs 文件中,我有一个动态控件,比如一个标签,它会在单击按钮后更改其值

所以我写了这样的代码

    protected void Page_Init(object sender, EventArgs e)
    {
        Label label = new Label();
        label.Text = "I am in the Place holder";
        PH.Controls.Add(label);
    }
    protected void Page_Load(object sender, EventArgs e)
    {

    }


   protected void brnClickme_Click(object sender, EventArgs e)
    {
        Label label = (Label)FindControl("label");
        label.Text = "After Click I am changed!";
    }

但在按钮单击事件中,我没有找到标签,因此我无法通过单击更改此动态创建的标签的文本。我知道我犯了一个错误,所以请告诉我我犯了什么错误以及我应该怎么做。

提前致谢

【问题讨论】:

  • 您尝试在 FindControl("ID") 之后添加标签 ID? label.ID = "识别"; FindControl("识别").

标签: c# asp.net asp.net-placeholder


【解决方案1】:

尝试在占位符中找到控件

PH.FindControl("label"); 

您可能希望为标签指定一个 ID,以便在创建时更容易找到。

label.ID = "findme";

然后

PH.FindControl("findme"); 

【讨论】:

    【解决方案2】:

    您在创建控件时没有为您的控件提供ID - 这个IDFindContorl 用来查找该控件的。

    您还应该在将其添加到的容器上调用FindControl(在您的情况下为PH),如podiluskaanswered

    protected void Page_Init(object sender, EventArgs e)
    {
        Label label = new Label();
        label.ID = "myLabel";
        label.Text = "I am in the Place holder";
        PH.Controls.Add(label);
    }
    
    protected void brnClickme_Click(object sender, EventArgs e)
    {
        Label label = (Label)PH.FindControl("myLabel");
        label.Text = "After Click I am changed!";
    }
    

    【讨论】:

      【解决方案3】:

      您必须像您已经完成的那样在 INIT 中重新创建动态控件。当您在 Button Click 中搜索 LABEL 时,请尝试调用 templateFormPlaceholder.FindControl

      阅读本文。这可能会有所帮助Get text from dynamically created textbox in asp.net

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-26
        • 2012-01-19
        相关资源
        最近更新 更多