.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+"');");
                
            }
        }

然后单击行跳转页面就这么完成了

posted on 2013-03-23 10:23  laohe98  阅读(997)  评论(0编辑  收藏  举报

导航