1

私が達成しようとしているのは、グリッドビューのボタンをクリックすると、その特定の行の値がテキストラベルlblID、lblName、...
に表示される必要があるということです。それを行う方法がわかりません。
これは私のsqldatasourceのコードです:

<asp:SqlDataSource ID="srcProd" runat="server"  
ConnectionString="<%$ ConnectionStrings:ConnDB %>"   
ProviderName="<%$ ConnectionStrings:ConnDB.ProviderName %>"   
SelectCommand="SELECT p.tProdID, p.tProdImage, p.tProdBeschrijving, m.tMerkNaam, m.tMerkImage,   p.tProdVerkoop FROM tblProducten AS p INNER JOIN tblMerken AS m ON p.tMerkID = m.tMerkID ORDER BY m.tMerkNaam">  
</asp:SqlDataSource>

これは私が話しているグリッドビューのスクリーンショットです。 これがグリッドビューのスクリーンショットです

ボタンの1つを押すと、たとえば、lblIDに表示されるパラメーターIDが必要です。

すべてのヘルプ、ヒント、ヒントをいただければ幸いです。

4

2 に答える 2

4

CommandNameボタンに(「ShowDetails」などのような)とCommandArgument(レコードのID )を割り当てます。ボタンをクリックすると、グリッドのイベントがトリガーされ、とのRowCommand両方が渡されます。次に、DBからレコードをフェッチし、コントロールにデータを入力します。CommandNameCommandArgumente

<asp:TemplateField>
    <ItemTemplate>
        <asp:Button runat="server" Text="Foo2" CommandArgument='<%# Eval("RowID") %>'
            CommandName="ShowDetails" />
    </ItemTemplate>
</asp:TemplateField>


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    Debug.WriteLine("Command Handler");
}
于 2012-05-02T13:47:10.757 に答える
1

つまり、基本的にこれは2つの方法で実行できます。

  1. ボタンの後ろにサーバー側のクリックハンドラーを追加し、UpdatePanel内のラベルを更新します(この場合、ポストバックは必要ありません)
  2. ボタンの「OnClientClick」イベントにJavaScriptを追加して、このラベルを設定します...このメソッドは、GridViewのbindメソッドで設定できます。

お役に立てれば。

于 2012-05-02T13:39:57.343 に答える