0

私の質問はこれです:データベースからのテキストとリストされたオブジェクトのID(データベースからのID)を渡すリンクを含むボタンのリストを生成するためにどのasp.netコントロールを使用する必要がありますか?

4

2 に答える 2

1

一意の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)を取得して正しいメソッドに渡すことができます。

void CommandBtn_Click(Object sender, CommandEventArgs e) 
      {

         if((string.Compare(e.CommandName, "yourCommandName", false)==0)
         {
               YourMethodAcceptingTheIdAsParameter((int)e.CommandArgument);            
         }
      }
于 2013-02-14T17:49:07.847 に答える
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 />

于 2013-02-15T15:39:20.230 に答える