2013-02-14 117 views
0

我的問題是:我必須使用什麼asp.net控件來生成帶有來自數據庫的文本的按鈕列表以及通過鏈接傳遞列出的對象ID的動作ID也來自數據庫)??簡單的動態按鈕列表asp.net

+1

使用asp.net Repeater創建UL,給它一個ID,並得到其代碼參考後面。在您的代碼中,動態創建LinkBut​​ton並將它們附加到UL。 – MethodMan 2013-02-14 17:48:41

回答

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

datarepeater帶有一堆按鈕與獨特的commandArgument和一個共同的命令名稱應該這樣做。

從我的頭頂:

<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 2013-02-15 09:31:23