1
私は視覚的な stdio 2008 に取り組んでおり、私のデータベースは sql server 2005 にあります
私のテーブルには3つの列があります
1.送信者名
2.受信者名
3.メッセージ

このテーブルを GridView に表示し、返信という名前のボタンを追加しました
だから私のグリッドビューはこのようなものです

送信者名|受信者名| メッセージ|返信ボタン

今、これが私がやりたいことです
My gridView でボタンをクリックすると、その特定の行のデータを取得する必要があります
つまり、返信できるように送信者の名前を教えてください。

誰でも助けることができますか????
4

3 に答える 3

2

サンプルは次のとおりです。

マークアップ:

<asp:GridView 
    runat="server" 
    ID="gvEmails" 
    OnSelectedIndexChanged="gvEmails_SelectedIndexChanged">            
    <Columns>
        <asp:ButtonField CommandName="Select" ButtonType="Button" Text="Send" />
    </Columns>
</asp:GridView>

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
{
    DataTable dt = new DataTable();
    dt.Columns.Add("SenderName");
    dt.Columns.Add("ReceiverName");
    dt.Columns.Add("Message");

    DataRow dr;

    dr = dt.NewRow();
    dr["SenderName"] = "John Doe";
    dr["ReceiverName"] = "Jane Doe";
    dr["Message"] = "Hi, Jane.";
    dt.Rows.Add(dr);

    dr = dt.NewRow();
    dr["SenderName"] = "Michelle Smith";
    dr["ReceiverName"] = "Mike Smith";
    dr["Message"] = "Yo, Mike.";
    dt.Rows.Add(dr);

    gvEmails.DataSource = dt;
    gvEmails.DataBind();
}

protected void gvEmails_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = gvEmails.SelectedRow;

    Response.Write("Send email to " + row.Cells[1].Text);
}
于 2010-12-17T06:44:55.270 に答える
1

プロパティに選択されたインデックス変更機能があります。

選択したインデックスをキャプチャし、その選択したインデックスのセル値を取得します。

その後、好きなように続けてください。

于 2010-12-17T06:30:00.863 に答える
0

これにはさまざまな方法があります。値が 1 つだけ必要な場合は、その値を [返信] ボタンの CommandArgument にバインドするのが最も簡単です。次に、OnClick ハンドラーをボタンに追加します。次に、OnClickメソッドで、CommandArgument から名前を取得できます。

行から複数​​の値が必要な場合は、もう少し作業を行う必要があります。GridView でイベント ハンドラーをセットアップして、インデックス変更のイベントをキャプチャできます。これにより、NewSelectedIndex を持ついくつかのイベント引数が提供されます。これにより、どの行が選択されたかがわかります。データが GridView にバインドされている方法に応じて、データに再度アクセスして必要な値を取得したり、GridView で列をDataKeyに設定してその方法でアクセスしたりできます。

于 2010-12-17T06:27:14.730 に答える