我用dataset将数据绑定到gridview中,并添加了gridview自带的按钮控件,但是不用gridview带的增删改功能,而用自行编写的类文件对数据库进行操作,在操作时有个问题,就是如何获得当前空间对应行的主键数据,并传递到其他页面。我是新手,在线等。

解决方案 »

  1.   

    (this.BindContext[dataset, "表1"].Current as DataRowView)["主键"] as ...
      

  2.   

    在添加的按纽的单击事件中写以下代码:
    int index = e.RowIndex;//获取当前行的索引
    GridViewRow row = GridView1.Rows[index];//找到当前行
    string uid = row.Cells[id].Text;//获取对应行的主键数据
    Response.Redirect("test.aspx?id='uid'")//转向,传递数据
    大致代码如下,我没调试,你试试.
    //gridview1是你的gridview控件的名称.id为主键名test为要全的页面
      

  3.   

    先设置gridview属性的主键,
    然后:this.GridView.CurrentRow.Cells["ID"].Value.ToString()
      

  4.   

    还需要添加什么using吗,因为定义int index以后,后面的e没有rowindex属性
    this.gridview也没有currentrow的属性,要有这些属性要有什么条件吗
      

  5.   

    我是用vs2005做的web,用c#。net做后台代码,不是c#
      

  6.   

    button btn=(button)sender;
    主键=((GridViewRow)btn.parent.parent).cells[xxx].text;
      

  7.   

    可能我说的不太清楚,是c#.net中的gridview的按钮控件中获得当前行的某列数据
      

  8.   

    我给你的例子你试了吗?可以获取你的按钮所在行的任意literal列的数据。
      

  9.   

    不好用,可能水平不行,我现在用<asp:HiddenField ID="HiddenField1" runat="server"  Value='<%# Bind("id") %>'/>来解决这个问题了
      

  10.   

    GridView 中没有CurrentRow 的属性 用不了
      

  11.   

    恩恩 这个我也试了 根本就没有currentRow属性 我在winform中这么用过,可能是回答问题的搞错了吧
      

  12.   

    你的方法有用 可以获取到值 可是就是代码拼写有点错误:
                GridViewRow gvr=(GridViewRow)(btn.Parent.Parent);
                string strId = gvr.Cells[0].Text;//这里Cell[index] 只能写成index 用列名不行