vignesht50 Ответов: 1

Создание элементов управления динамически при нажатии кнопки


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>


Что я уже пробовал:

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?

Ram Nunna

Привет Прем,
Пожалуйста, обратитесь к ссылке ниже, которая поможет вам реализовать ту же функциональность.
https://www.codeproject.com/Questions/355847/how-to-create-dynamic-textbox-dropdown-list-in-asp

Laxmidhar tatwa technologies

pnlSort должен быть панелью или групповым блоком
Добавьте опцию в dropdownlist .rest любит быть в порядке в вашем коде

Laxmidhar tatwa technologies

в HTML код является pnlSrt но в код позади идентификатор pnlSort

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Пробовали ли вы отлаживать свой код, чтобы увидеть, попадает ли он в OnClick событие? Глядя на ваш код, основанный на этой строке:

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


Связь с OnClick события в LinkButton который называется "lnkAddOrder_Click"но ваш код позади использует имя "lnkAddSort_Click". Вы должны изменить имя события, чтобы оно соответствовало обработчику событий, заданному в вашей разметке/HTML. Так что вместо этого у вас должно быть что-то вроде этого:

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



Вы также можете сослаться на этот пример о том, как [^]создание динамических элементов управления в ASP.NET веб-формы: