【问题标题】:Changing Gridview row style onclicking a hyperlink field在单击超链接字段时更改 Gridview 行样式
【发布时间】:2010-10-19 10:09:57
【问题描述】:

我有一个 ASP.NET(使用 C# 的 2.0)网络应用程序,其中我在页面上有一个网格视图(My_Page.aspx)。 gridview 从 Oracle 数据库中获取数据。我在 gridview 中有一个超链接字段,单击该字段时,会回发到同一页面,但单击的项目的详细信息(使用 QueryString)。

<asp:HyperLinkField DataNavigateUrlFields="ID" 
                    DataNavigateUrlFormatString="My_Page.aspx?id={0}"
                    DataTextField="NAME" 
                    HeaderText="Item1" 
                    SortExpression="NAME" />

我想知道如何更改单击超链接所在行的样式。

有什么想法吗?

谢谢。

【问题讨论】:

    标签: c# asp.net gridview hyperlink


    【解决方案1】:

    首先,超链接(字段)通常不会回发,但在您的情况下,请求具有新参数的同一页面。

    要为 GridView 行设置 CSS 类,请使用 RowCreated 事件执行以下操作:

    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
            if (e.Row.DataItem.ToString() == Request["id"])
                e.Row.CssClass = "highlighted-css-class";
    }
    

    【讨论】:

      【解决方案2】:

      我建议您使用 Javascript 来实现。 由于您不能直接使用链接按钮, 您必须在 DOM 中导航到父 TR (TableRow) 元素并设置其类属性。

      首先,添加 onclick 属性(如果 HyperLinkField 无法使用,请尝试简单的 HyperLink 或 LinkBut​​ton)

      将控件作为参数传递给 Javascript 函数

      onclick="selectRow(this)"
      
      
      function selectRow(hyperlink) { ... }
      

      我会让你弄清楚如何在 DOM 中导航以找到父 TR。

      一些参考资料:

      domtables

      domstructure

      希望对你有帮助

      【讨论】:

        【解决方案3】:

        我的情况:

        <asp:GridView ID="gvProjects" runat="server">
        <SelectedRowStyle CssClass="current" />
        <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="cmdShowProject" runat="server" 
                   OnCommand="cmdShowProject_Command"
                   CssClass="show-project" CommandName="select"
            </ItemTemplate>
        </asp:TemplateField>
        

        SelectedRowStyle 必须设置(通过单个属性或通过 CssClass)。 CommandName 必须为 "select" 才能更改 Row 样式。 GridView 位于 UpdatePanel 中。

        【讨论】:

          猜你喜欢
          • 2016-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多