当我单击行中的某些文本时,如何更改行的背景颜色?我只是想突出显示该行。我添加了一个 onclick 事件,但不知道如何点亮该行。这就是我所拥有的..
<asp:GridView ID="gdvOrders" width="100%" runat="server" style="font-size:1.8em" ShowHeaderWhenEmpty="True" EmptyDataText="No orders" AllowPaging="True" AutoGenerateColumns="False" CssClass="mGrid" DataKeyNames="orderID" DataSourceID="DSOrders" PageSize="20" AllowSorting="True">
<AlternatingRowStyle CssClass="alt" />
<Columns>
<asp:TemplateField HeaderText="Order">
<ItemTemplate>
<asp:LinkButton ID="LnkBtn1" onclick="LnkBtn1_Click" runat="server" Text='<%# Eval("ordertext") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="price" HeaderText="Price" />
.........
VB
Protected Sub LnkBtn1_Click(sender As Object, e As System.EventArgs)
Dim LnkBtn1 As LinkButton = CType(sender, LinkButton)
End Sub
我在预渲染事件期间做了类似的事情。这是一个小片段。
好的,让我们使用 vb 编写一些代码来突出显示该行。正如所指出的,这是一种借“山”来解决小蚂蚁的问题。(在客户端做这个会更好)。
但是,让我们使用服务器端代码来完成此操作,因为从这个示例中可以学到很多东西。(例如根据按钮单击选取 GridView 中的当前行)。
因此,虽然 100% 客户端 JavaScript 是一个好主意,但它通常不会那么简单,因为现在突出显示的前一行必须取消突出显示!
因此,假设这个简单的 GridView 在行中带有一个按钮。
以及加载此网格的代码:
另请注意,在上面,我们在 GridView 中有一个标准按钮
该按钮可以有这样的代码:
因此,请注意当我们突出显示一行时,我们还必须取消突出显示前一行。
现在的效果是这样的:
然而,也许让光标“悬停”在该行上更容易。请注意上面的网格如何已经有一个“hover”内置 int。
代码自由行悬停效果是通过 GridView 的以下设置完成的:
因此,事实上,table 和 table-hover 是引导程序类,假设您安装了引导程序(您很可能会这样做,因为这是模板的默认设置),那么也许只需将光标悬停就足够了。
如前所述,请注意单击行按钮如何选取通过使用命名容器单击的当前行。这适用于中继器、GridView、ListView 等。这种方法还意味着您不必使用或关心特定的 GridView 事件,例如命令名称。事实上,对于此类行点击,我建议您对此类事件使用上面的命名容器。
编辑:允许重新加载并重新绑定网格,保留行。
那么,即使重新加载也允许/保留突出显示的行?
然后我们需要 2 个新部件:
第一部分,保留数据库中主键值的列表。
第二部分,添加到重新绑定例程代码以突出显示行列表中的任何现有行。
所以,代码现在变成这样:
所以,最后一个按钮是测试我们的代码,它会 100% 重新加载。
结果是这样的: