如题
如果使用LinkButton取得DataKeyNames?
需要的不是当前行而是DataKeyNames。

解决方案 »

  1.   

    使用LinkButton1_Click事件怎么来获得?
      

  2.   

    我需要的是DataKeyNames的值不是当前行的值
      

  3.   

    这个还怎么贴啊?前台代码中我设置了DataKeyNames="id",就是数据库中那行的id
    后台代码是这样:
    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            int row = ((GridViewRow)((LinkButton)sender).NamingContainer).DataItemIndex;
            myTool.Alert(row.ToString(), this);
        }
    现在这个得到的是当前行
    但是我需要得到的是DataKeyNames的值,也就是数据库中的id值,而不是当前行。
    数据库中的id值可能是不连续的,而当前行一定是连续的。
      

  4.   

    这样写protected void LinkButton1_Click(object sender, EventArgs e) 
        { 
             GridViewRow r = (GridViewRow)GridView1.Rows;
            int i = Convert.ToInt32(GridView1.DataKeys[r.RowIndex].Value);//i就是要获取的值
        } 
      

  5.   

     protected void Linkbutton1_SelectedIndexChanged(object sender, EventArgs e) 

      Linkbutton DropDownList1 = sender as  Linkbutton; 
     int index = (DropDownList1.NamingContainer as GridViewRow).RowIndex; 
     string id = GridView1.DataKeys[index].Value.ToString();
     }
      

  6.   


    <asp:LinkButton ID="lbtn" runat="server" OnClick="Linkbutton1_Click"/>
    protected void Linkbutton1_SelectedIndexChanged(object sender, EventArgs e) 

      Linkbutton  Linkbutton1 = sender as  Linkbutton; 
     int index = ( Linkbutton1.NamingContainer as GridViewRow).RowIndex; 
     string id = GridView1.DataKeys[index].Value.ToString();
     }
      

  7.   


    如果选MVP了,告诉我一声,我绝对投你的票~~
      

  8.   

    只要将Linkbutton1的CommandName设置为Select,
    在GridView的SelectedIndexChanged事件中,一句代码就可获得!!    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string a = GridView1.SelectedDataKey.Value.ToString();
        }