【问题标题】:How do I dynamically add a user control based on user input?如何根据用户输入动态添加用户控件?
【发布时间】:2013-10-12 09:07:52
【问题描述】:

我在我的应用程序中添加了一个用户控件 (.ascx):

<uc1:pomedsrow runat="server" id="POMedsRow" />

这里是html和逻辑

<asp:Panel ID="Panel1" runat="server">
    How many PO Meds do you wish to order?
    <asp:TextBox ID="txtReqPONum" runat="server" />
    <asp:LinkButton ID="lbnAddPOMeds" runat="server" Text="Go" 
                    OnClick="lbnAddPOMeds_Click"/>
</asp:Panel>

<asp:Panel ID="pnlPOMeds" Visible="false" runat="server">
    <table border="1">
    <tr>
        <td><p>PO Meds</p></td>
        <td><p>Min/Max</p></td>
        <td><p>Amount to Order</p></td>
    </tr>
    <uc1:pomedsrow runat="server" id="POMedsRow" />
    </table>
    <br />
</asp:Panel> 

protected void lbnAddPOMeds_Click(object sender, EventArgs e)
{
    int ReqPO = Convert.ToInt32(txtReqPONum.Text);
    int n = ReqPO;
    for (int i = 0; i < n; i++)
    {
        Control pomedsrow = new Control();
        //Assigning the textbox ID name 
        pomedsrow.ID = "txtPOAmount" + "" + ViewState["num"] + i;
        this.Form.Controls.Add(pomedsrow);
    }

}

但是当我点击链接按钮时,什么也没有发生。我没有正确调用自定义控件吗?

【问题讨论】:

标签: c# asp.net user-controls


【解决方案1】:

您没有正确添加控件。试试这个:

protected void lbnAddPOMeds_Click(object sender, EventArgs e)
{
    TextBox txtReqPONum = (TextBox) Panel1.FindControl("txtReqPONum");
        int ReqPO = 0;
        if (txtReqPONum != null && int.TryParse(txtReqPONum.Text, out ReqPO) )
        {            
            int n = ReqPO;
            for (int i = 0; i < n; i++)
            {
                UserControl myControl = (UserControl)Page.LoadControl("~/pomedsrow.ascx");//(UserControl)Page.LoadControl("Your control path/pomedsrow.ascx");
                //Assigning the textbox ID name 
                myControl.ID = "txtPOAmount" + "" + ViewState["num"] + i;
                Panel1.Controls.Add(myControl);
            }
        }

}

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    相关资源
    最近更新 更多