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

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

  • 相关阅读:
    .Net2.0 中 Page 页面的事件触发顺序
    vs 中自带的代码混淆器 Dotfuscator (图)
    SqlHelper 中文注释版(值得收藏)
    (原创)用重载实现 treeview 的无限分类递归调用(图)
    通过前置代码指定嵌套中的 Repeater 事件!
    vs2008 中提高开发效率的一些快捷键
    强内聚,弱耦合
    也谈 SQL 注入攻击。
    ASP.NET 页面中动态加载用户控件
    ASP 调用存储过程,同时返回记录集和输出参数
  • 原文地址:https://www.cnblogs.com/hytqm/p/2976717.html
Copyright © 2020-2023  润新知