我在GridView的模版里加了一个LinkButton列并且和数据库绑定了,
现在我想点击LinkButton的时候要把点中的LinkButton列里的值传出去,并获取到  
请问该怎么做?

解决方案 »

  1.   

    GridView的HyperLinkField方便好用 <asp:HyperLinkField DataNavigateUrlFields="field2,field3" DataNavigateUrlFormatString="webform1.aspx?field2={0}&amp;field3={1}"
                        DataTextField="field1" DataTextFormatString="链接到{0}" Target="_blank" />
      

  2.   

    把linkbutton绑定的值存到commandname里,在gridview的rowcommand事件里获取它
      

  3.   

    传值:linkbutton先添加按钮,在属性生成器里的命令名那里打上按钮的名称 本例为“select”
    Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
    If e.CommandName = "select" Then
    //select为命令名
            Dim uid As String = e.Item.Cells(0).Text
            Session("USER_ID") = uid
    //用Session("USER_ID") 来传值
    end if插入HyperLink按HyperLink跳到另一个新窗口
     Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
            Dim lin As HyperLink = CType(e.Item.Cells(5).FindControl("HyperLink1"), HyperLink)
          If Not lin Is Nothing Then         lin.Target = "_blank"
             lin.NavigateUrl = "change.aspx?uid=" & CStr(e.Item.DataItem(0))  //把uid 传到新打开的页面
          End If
     End Sub
        End Sub
    新的页面那里用
    cmd.Parameters.Add("@user_id", SqlDbType.Char).Value = Request.QueryString("uid") 对应前面一页
      

  4.   

    nBookID = Convert.ToInt32(GridView1.Rows[GridView1.EditIndex].Cells[2].Text);
            sBookName = ((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox1")).Text;
            sBookWriter = ((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox2")).Text;
            sBookPublish = ((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox3")).Text;
            dBookDate = Convert.ToDateTime(((TextBox)GridView1.Rows[GridView1.EditIndex].FindControl("TextBox4")).Text);