2013-02-14 2 views
0

Мой вопрос заключается в следующем: какой элемент управления asp.net я должен использовать для создания списка кнопок с текстом из базы данных и с действием ссылка, передающая идентификатор указанного объекта (id также из базы данных)?Простой динамический список кнопок asp.net

+1

Использование asp.net ретранслятор для создания UL, дать ему идентификатор и получить свою ссылку в коде позади. В вашем коде создайте LinkButtons динамически и добавьте их в UL. – MethodMan

ответ

1

Что решить мою проблему было это невероятно простое noobish решение:

<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand" 
       DataSourceID="SqlDataSource1"> 
       <ItemTemplate> 
        <asp:Button Style="margin-top: 20px;" ID="Button1" Font-Size="X-Large" BackColor="Blue" ForeColor="White" runat="server" Text='<%# Eval("Descrizione") %>' 
         PostBackUrl='<%# "~/Assemblaggio3.aspx?idCompCrit="+Eval("ID") %>' /><br /> 

1

a datarepeater с пучком кнопок с уникальной командойArgument и общей командой Name должно это делать.

из верхней части моей головы:

<asp:Repeater runat="server"> 
    <ItemTemplate> 
     <asp:Button id="<%# DataBinder.Eval(Container.DataItem, "someuniquecounter") %>" 
      Text="<%# DataBinder.Eval(Container.DataItem, "columnContainingTextToDisplayToUser") %>" 
      CommandName="CommonCommandName" 
      CommandArgument="<%# DataBinder.Eval(Container.DataItem, "IdToPassToTheCommandEventHandler%>")" 
      OnCommand="CommandBtn_Click" 
      runat="server"/> 
    </ItemTemplate> 
    <SeparatorTemplate> 
    <br> 
    </SeparatorTemplate> 
</asp:Repeater> 

в обработчике команды, вы можете первое испытание, если имя команды является правильным (вы можете иметь много в зависимости от действия, которое вы хотите достичь), а затем получить аргумент команды (id) передать правильному методу.

void CommandBtn_Click(Object sender, CommandEventArgs e) 
     { 

     if((string.Compare(e.CommandName, "yourCommandName", false)==0) 
     { 
       YourMethodAcceptingTheIdAsParameter((int)e.CommandArgument);    
     } 
     } 
+0

это дает мне "id не является допустимым идентификатором" – velteyn

Смежные вопросы