我有一个ASP.NET(2.0使用C#)Web应用程序,我在页面上有一个gridview(My_Page.aspx)。 gridview从Oracle数据库获取其数据。我在gridview中有一个超级链接字段,当单击时,回发到同一页面,但点击项目的详细信息(使用QueryString)。
<asp:HyperLinkField DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="My_Page.aspx?id={0}"
DataTextField="NAME"
HeaderText="Item1"
SortExpression="NAME" />
我想知道如何更改单击超链接的行的样式。
任何想法?
谢谢。
答案 0 :(得分:3)
首先,HyperLink(字段)通常不会回发,但在您的情况下,请求使用新参数的同一页面。
要为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";
}
答案 1 :(得分:0)
我建议您使用Javascript来实现这一目标。 由于您无法直接使用linkbutton, 您必须在DOM中导航到父TR(TableRow)元素并设置其类属性。
首先,添加onclick属性(如果HyperLinkField不可能,请尝试使用简单的HyperLink或LinkButton)
将控件作为参数传递给Javascript函数
onclick="selectRow(this)"
function selectRow(hyperlink) { ... }
我会让你弄清楚如何在DOM中导航以找到父TR。
一些参考文献:
希望有所帮助
答案 2 :(得分:0)
我的情况:
<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中。