我正在开发 Visual stdio 2008,我的数据库在 sql server 2005 中 MY 表有三列 1.发件人姓名 2. 收件人姓名 3. 留言 我已在 GridView 中显示此表并添加一个名为回复的按钮 所以我的网格视图看起来有点像这样 发件人姓名|收件人姓名| 消息时代|回复按钮 现在这就是我想做的 在我的 gridView 中单击按钮时,我需要获取该特定行的数据 即发件人的姓名以便我可以回复他/她? 有人可以帮忙吗???
问问题
2915 次
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 回答