简单的动态按钮列表asp.net

时间:2013-02-14 17:42:04

标签: c# asp.net

我的问题是:我必须使用什么asp.net控件来生成带有来自数据库的文本的按钮列表,并且操作链接传递列出的对象的ID(id也来自数据库)?

2 个答案:

答案 0 :(得分:1)

一个带有一组按钮的datarepeater,它们具有唯一的commandArgument和一个通用命令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)以传递给正确的方法。 / p>

void CommandBtn_Click(Object sender, CommandEventArgs e) 
      {

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

答案 1 :(得分: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 />