2

你能告诉我如何在网格视图中检索选中行的主键吗?我不想显示该值或其他内容,只需使用它来修改该特定行(删除、更改列值等)。我在后端使用 Oracle 10g。谢谢。

4

3 回答 3

3

使用DataKeysgridview
详细信息:- http://msdn.microsoft.com/en-in/library/system.web.ui.webcontrols.gridview.datakeys.aspx

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"  
    DataKeyNames="emp_id">

DataKeyNames您的主键值放在此字段中。
详情链接
http://www.codeproject.com/Articles/23833/DataKeyNames

于 2013-04-17T04:30:27.433 回答
1

在 Aspx.Page...

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="False"  
    DataKeyNames="emp_id">

在 Cs.Page 中,在 Click 事件中。

for(int i=0;i<gv.rows.count;i++)
{
    GridviewRow row=gv.rows[i];
    cheakbox c1=(Cheakbox)row.FindControl("chkId");
    if(c1.cheaked)
    {
         int id=Convert.toInt32(gv.Datakeys[i]);
    }
}
于 2013-04-17T05:11:29.253 回答
1

尝试这个

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="ProductId" AllowPaging="True" 
        BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" 
        CellPadding="2" ForeColor="Black" GridLines="None" 
        onpageindexchanging="GridView1_PageIndexChanging" 
        onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating" 
        onrowcancelingedit="GridView1_RowCancelingEdit" 
        onrowdeleting="GridView1_RowDeleting" Width="603px">
  </asp:GridView>

现在在你的代码后面,例如更新

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    int productid=int.Parse(GridView1.DataKeys[e.RowIndex].Values[0].ToString());
}
于 2013-04-17T05:15:35.960 回答