asp.net中的datagridview检索值

时间:2010-12-17 06:17:24

标签: asp.net gridview aspxgridview

i am working on visual stdio 2008 and my database is in sql server 2005 
MY table has three columns 
1. SenderName 
2. RecieverName
3. Message

i have displayed this table in GridView and add a button named as Reply 
so my grid view look's some what like this 

SenderName|RecieverName| MessAge|REPLY BUTTON

now this what i want to do 
when Button is Clicked in My gridView i need to get data of that specific row 
i.e Sender's NAme so that i can Reply him/her ?

can any one help????

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

在属性中有一个选定的索引更改函数。

捕获所选索引并获取所选索引的单元格值。

然后继续你想要的任何事情。

答案 2 :(得分:0)

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

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