按钮单击动态创建控件 [英] Create controls dynamically on button click

查看:78
本文介绍了按钮单击动态创建控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I need to create dynamic controls on button click.  

HTML:

<asp:LinkButton ID="lnkSrt" runat="server" Text="Multi Sort" ForeColor="Black" Font-Names="Calibri" Font-Size="10pt" />
<ajax:ModalPopupExtender runat="server" ID="mpeSrt"
 TargetControlID="lnkSrt" PopupControlID="pnlSrt" CancelControlID="btnClose">
     </ajax:ModalPopupExtender>
         <asp:UpdatePanel ID="upPanel" runat="server">
             <ContentTemplate>
                  <asp:Panel ID="pnlSrt" runat="server" align="center" Style="display: none" BackColor="LightGray">
                  <asp:Label runat="server" Text="Sort By Column" />
                  <asp:DropDownList ID="ddlColumnSort" runat="server" AutoPostBack="true" />
                  <asp:Label runat="server" Text="Order By" />
                  <asp:DropDownList ID="ddlOrder" runat="server" AutoPostBack="true">
                  <asp:ListItem Text="Ascending" Value="0"></asp:ListItem>
                  <asp:ListItem Text="Descending" Value="1"></asp:ListItem>
                  </asp:DropDownList>
                  <asp:LinkButton ID="lnkAdd" runat="server" Text="Add Sorting" Font-Underline="true" OnClick="lnkAddOrder_Click" Font-Names="Calibri" Font-Size="10pt" ForeColor="Black" />
                  <asp:Button ID="btnSorting" runat="server" Text="Sort" OnClick="btnSorting_Click" />
                  <asp:Button ID="btnClose" runat="server" Text="Close" />
                </asp:Panel>
             </ContentTemplate>
          </asp:UpdatePanel>





我的尝试:





What I have tried:

CODE: 

When clicked on AddSorting I am trying to create dropdown control using below code and the controls doesn't show. 
 
protected void lnkAddSort_Click(object sender, EventArgs e)
{
int index = pnlSort.Controls.OfType<DropDownList>().ToList().Count + 1;
this.Createddl("ddldyn" + index);
}
public void Createddl(string id)
{
DropDownList ddl = new DropDownList();
ddl.ID = id;
pnlSort.Controls.Add(ddl);
Literal lt = new Literal();
lt.Text = "<br />";
pnlSort.Controls.Add(lt);
}







Can anyone please provide suggestions on how to handle this?

推荐答案

您是否尝试调试代码以查看它是否符合 OnClick 事件?查看您的代码,基于以下这一行:



Have you tried debugging your code to see if it hits the OnClick event? Looking at your code, based on this line:

<asp:LinkButton ID="lnkAdd" runat="server" Text="Add Sorting" Font-Underline="true" OnClick="lnkAddOrder_Click" Font-Names="Calibri" Font-Size="10pt" ForeColor="Black" />





你有线了 OnClick 事件到您的 LinkBut​​ton ,其名称为 lnkAddOrder_Click 但你的代码后面使用名称 lnkAddSort_Click 。您应该更改事件名称以匹配您在标记/ HTML中设置的事件处理程序。所以你应该有类似的东西:





You wired-up an OnClick event to your LinkButton which is named "lnkAddOrder_Click" but your code behind uses the name "lnkAddSort_Click". You should change the event name to match with the event handler you set in your markup/HTML. So you should have something like this instead:

protected void lnkAddOrder_Click(object sender, EventArgs e)
{
      //your code here
}







你也可以参考这个例子来讨论如何 [ ^ ]在ASP.NET WebForms中创建动态控件:




You can also refer this example on how to [^]create dynamic controls in ASP.NET WebForms:


这篇关于按钮单击动态创建控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆