0

asp.net、c# を使用して、Visual Studio 2012 で Web サイトを作成しています。SQL サーバーからデータを取得するグリッド ビューを作成し、データベースから取得した列の 1 つである id_p にバインドされたボタン フィールドを作成しました。ボタンがクリックされた行の id_p のデータを取得しようとしています。

<asp:ButtonField ButtonType="Button" DataTextField="id_p" 
DataTextFormatString="Stavi u košaricu" Text="Button1" />

必要なのは、選択した行ではなく、id_p 値だけです。どうすればそれを行うことができますか?

4

1 に答える 1

0

OnRowCommand次のように、グリッドビューでイベントを処理する必要があります。

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView_RowCommand" 

そして、列<asp:button>を使用する代わりに通常のアイテムを表示する ItemTemplateField を作成します。ButtonField

<asp:TemplateField>
     <ItemTemplate>
         <asp:Button ID="btn" runat="server" 
          CommandName="Something" CommandArgument='<%#Eval("id_p") %>'
          Text="Stavi u košaricu" />
     </ItemTemplate>
 </asp:TemplateField>

次に、RowCommand イベントを処理します。

protected void GridView_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    string m_id = e.CommandArgument.ToString();
    if (e.CommandName == "Something")
    {
       //do something with m_id
    }
}    
于 2012-09-05T15:59:34.833 に答える