1
我正在开发 Visual stdio 2008,我的数据库在 sql server 2005 中
MY 表有三列
1.发件人姓名
2. 收件人姓名
3. 留言

我已在 GridView 中显示此表并添加一个名为回复的按钮
所以我的网格视图看起来有点像这样

发件人姓名|收件人姓名| 消息时代|回复按钮

现在这就是我想做的
在我的 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

有许多不同的方法可以做到这一点。如果您只需要一个值,最简单的方法是将值绑定到回复按钮的 CommandArgument。然后将 OnClick 处理程序添加到您的按钮。然后在OnClick方法中,您可以从 CommandArgument 中获取名称。

如果您需要行中的多个值,则需要做更多的工作。您可以在 GridView 上设置事件处理程序来捕获索引更改的事件。这将提供一些具有 NewSelectedIndex 的事件参数。这将告诉您选择了哪一行。根据您的数据绑定到 GridView 的方式,您可以再次访问数据以获取所需的值,或者您可以将列设置为 GridView 中的DataKey并以这种方式访问​​它们。

于 2010-12-17T06:27:14.730 回答