我的情况是这样的:
我简单的用GridView绑定了A表中的数据,现在想在GridView每一行中加一个button,点击button后将那一行的数据写入B表中
这是我最终实现的目的
现在我把那个button加到了模板里,双击后可以在后台写插入B表的代码,问题是如何获取GridView中每行每一项的值??
请高手们帮忙!
谢谢!

解决方案 »

  1.   

    你 可以根据GridView 中的 行编号 获取DataKey  去 数据库中查询一次 就 可以 了 或者你使用编辑模板的事件来处理 呵呵 !
      

  2.   

    网上例子多的是。。用FindControl
      

  3.   

    绑定button的commandArgument属性为当前行的索引,或者是关键的ID1.用索引从gridview中直接取了再保存..2.用关键ID直接用select into插入一条数据到B,当然是根据关键ID来插入的
      

  4.   

    sql="select into b where id="+GridView1.SelectedRow.Cells[0]?
      

  5.   

     string sid = this.GridView1.DataKeys[e.RowIndex].Value.ToString();
      

  6.   

    CommandArgument ='<%#Eval("主键") 
    CommandName ="Update"
    这是前台设置
    后台
    e.CommandArgument 用这个获取参数
      

  7.   

     “System.EventArgs”并不包含“RowIndex”的定义
      protected void Button1_Click(object sender, EventArgs e)
      

  8.   

    举个例子,用CommandArgument传Container.DisplayIndex<ItemTemplate>
        <asp:Button ID="Button1" runat="server" Text="Button" CommandName="Go" CommandArgument='<%# Container.DisplayIndex %>' />
    </ItemTemplate>
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            if (e.CommandName == "Go")
            {
                GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text; //第一列值
            }
    }
      

  9.   

    e.CommandArgument 用这个获取参数
    能详细些吗?谢谢!
      

  10.   

    protected void btnfangtai_Click(object sender, EventArgs e)
        {        Button bt = (Button)sender;获得你点击的那个BUTTON
            GridViewRow gv = (GridViewRow)bt.Parent.Parent;//这就是你要的那一行的数据
               .....然后就做你要做的操作!!
      

  11.   

    <ItemTemplate>
        <asp:Button ID="Button1" runat="server" Text="Button" CommandName="select" />
    </ItemTemplate>protected void GridView1_SelectIndexChanging(object sender, GridViewEventArgs e)
    {
         string str=GridView1.rows[e.NewIndex].cells[1].text;  取单元格的值(用于绑定列)
         string str=((TextBox)(GridView1.rows[e.NewIndex].FindControl('txtbox')).text;  取控件的值.(用于模版列)
         string id=GridView1.DataKeys[e.NewIndex].toString();  取此行的主键
         //以下拼SQL语句
    }
      

  12.   

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            if (e.CommandName == "Go")
            {
                GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text; //第一列值
            }
    }
      

  13.   

    Container.DisplayIndex 指的是什么啊,我是菜鸟
      

  14.   

    Container.DisplayIndex 是行索引,还有个Container.DataItemIndex打个比方:你的表格只显示15条数据
    前者第一页就是1-15,翻页就是15-20
    后者就是1-15,然后翻页1-5
      

  15.   

    你说的好像不对。分页时,假设一页十条记录,翻到第二页,点第一条记录时DisplayIndex返回的是0! 而不是10或者11
    而DataItemIndex呢,翻到第二页点第一条记录时返回的是10,也就是说DataItemIndex返回的是全部数据从0开始的索引。
    DisplayIndex返回的是当前页从0开始的索引。
      

  16.   


    这个方法是最好的,你可以把你的A表中的主键值绑定到button的其他属性上,比如:cssname等,
    然后再根据条件查询A表同时插入B表