2012-05-02 10 views
1

私が達成しようとしているのは、gridviewのボタンをクリックすると、その特定の行の値がlblID、lblNameのtextlabelsに表示される必要があります。
私はちょうどそれを行う手掛かりがありません。
これは私のSqlDataSourceコントロールのコードです:ButtonclickのSQLdatasourceを使ってGridviewからラベルのパラメータを取得する

<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> 

これは私が話しているのGridViewのスクリーンショットです。 Here is a gridview screenshot

ボタンの1つを押すと、パラメータIDはlblIDで表示されます。

すべてのヘルプ、ヒント、ヒントは高く評価されています。

答えて

4

ボタンにCommandName(これは「ShowDetails」など)とCommandArgument(レコードのID)を割り当てます。ボタンをクリックすると、グリッドのRowCommandイベントが発生し、CommandNameCommandArgumentの両方がeに転送されます。その後、DBからレコードを取得し、コントロールに移入してください。

<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"); 
} 
+0

Idd、それは私が推測するとよいでしょう。ある時点で、この方法は私にとってはうまくいかなかったのですが、理由は分かりません。 Btw、複数の引数をここで指定できますか? (そして ";"ではなく、別の文字列) –

+0

私が知る限り、複数の引数を指定することはできません。私はこれもかなり頻繁に悩まされています... –

+0

あなたは ";"複数の値を渡すための分離文字列。それは私の意見では汚いですが、可能です。 –

1

SO basiclyこれは、2つの方法で行うことができます。

  1. (この場合は、私たちがポストバックを必要としない)ボタンの背後にあるサーバー側のクリックハンドラを追加し、UpdatePanelの内側のラベルを更新このラベルを設定するには、ボタンの "OnClientClick"イベントにJavaScriptをいくつか追加します。このメソッドは、GridViewのbindメソッドで設定できます。

これが役に立ちます。

関連する問題