2011-06-07 34 views
3
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     BackColor="White" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" 
     CellPadding="4"> 
    <Columns> 
    <asp:BoundField DataField="FileID" HeaderText="FileID" /> 
    <asp:BoundField DataField="FilePath" HeaderText="FilePath" /> 
    <asp:BoundField DataField="UploadedBy" HeaderText="CreatedBy" /> 
    <asp:BoundField DataField="CreatedDate" HeaderText="CreatedDate" /> 


     <asp:HyperLinkField HeaderText="LINK" NavigateUrl="show.aspx" Text="SHOW" /> 


    </Columns> 



     conn.Open(); 
      SqlDataReader rdr = comm.ExecuteReader(); 
      if (NAME.Equals("admin")) 
      { 
       GridView1.DataSource = rdr; 
       GridView1.DataBind(); 
      } 
      else 
      { 
       GridView2.DataSource = rdr; 
       GridView2.DataBind(); 
      } 
      rdr.Close(); 

我想使用在GridView的超级链接动态地根据该行是clicked.As我是新的传递值这我不能做到这一点。请任何人帮助我。动态参数通过超级链接传递在数据网格中asp.net(C#)

回答

1

加网格中的onRowCommand事件

OnRowCommand="OnRowCommand_GridView1" 

然后定义链接按钮,用的CommandName和CommandArgument

 <asp:LinkButton ID="lnk1" runat="server" Text="DoClick" CommandName="Select" CommandArgument='<%#Eval("FileID") %>'></asp:LinkButton> 

,比上后面的代码

protected void GridView1_OnRowCommand(object sender, GridViewCommandEventArgs e) 
    { 

     if (e.CommandName == "Select") 
     { 
      int MyFileID = e.CommandArgument; 
     //Now Perfrom here ur desired action 
     } 

希望这会帮助你。

2

设置hyperlink NavigateUrl财产像... NavigateUrl='<%# Eval("FileID", "show.aspx?ID={0}" %>'

NavigateUrl='<%# Eval("FileID", "show.aspx?ID={0}") + "&FilePath=" + Eval("FilePath") %>' 
+0

如何传递多个值? – Naresh 2011-06-07 11:41:46

+0

更新答案,支持多值传递。现在尝试.. – 2011-06-07 11:46:25

+0

它给出错误说“数据绑定表达式只支持具有DataBinding事件的对象,System.Web.UI.WebControls.HyperLinkField没有DataBinding事件。” – Naresh 2011-06-07 12:22:50

相关问题