.net gridview 任意单击某行跳转到新的页面,并且新页面的参数来自于与gridview中的不可见字段
昨天做毕业设计的时候发现一个问题,就是gridview中的隐藏字段如果采用的是visible=false的方式,那么在gridview的数据源中,这个隐藏字段的值是空值,当然,想让他作为链接的参数也就不大可能了,在网上找的些文档,很多取值的方法都不得行,最后在博客园里面找到一个,但是他的标签貌似有问题样!隐藏的字段不能用visible=false的方法,应该采用HiddenField的形式。我就来重新写一下记录下。
前台gridview的代码:
<asp:GridView ID="gridYSlist" runat="server" AutoGenerateColumns="False" CellPadding="4" EnableModelValidation="True" ForeColor="#333333" GridLines="None" Height="348px" Width="687px" onselectedindexchanged="gridYSlist_SelectedIndexChanged" onrowdatabound="gridYSlist_RowDataBound"> <AlternatingRowStyle BackColor="White" /> <Columns> <asp:TemplateField> <ItemTemplate> <asp:HiddenField ID="infoid" runat="server" Value='<%# Eval("y_id") %>' /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="y_title" HeaderText="养生标题"> <HeaderStyle HorizontalAlign="left" /> <ItemStyle HorizontalAlign="left" /> </asp:BoundField> <asp:BoundField DataField="y_date" HeaderText="发布时间"> <HeaderStyle HorizontalAlign="left" /> <ItemStyle HorizontalAlign="left" /> </asp:BoundField> <asp:BoundField DataField="y_id" HeaderText="infoid" /> </Columns> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /> <RowStyle BackColor="#FFFBD6" ForeColor="#333333" /> <SelectedRowStyle BackColor="#3366FF" Font-Bold="True" ForeColor="Navy" /> </asp:GridView>
后台代码:
protected void gridYSlist_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HiddenField hf = (HiddenField)e.Row.FindControl("infoid"); e.Row.Attributes.Add("onclick", "window.open( 'ysinfo.aspx?infoid="+hf.Value+"');"); } }
然后单击行跳转页面就这么完成了