【发布时间】:2013-07-03 14:58:49
【问题描述】:
已排序。我在 Page_Load 中添加了以下内容。这么简单
For Each thingy As RepeaterItem In uxMaterialNeedsRepeater.Items
Dim uxRepeaterItemPanel As Panel = CType(thingy.FindControl("uxRepeaterItemPanel"), Panel)
uxRepeaterItemPanel.BackColor = Nothing
Next
我有一个中继器
<asp:Repeater runat="server" ID="uxMaterialNeedsRepeater">
<ItemTemplate>
<p>
<asp:Panel runat="server" ID="uxRepeaterItemPanel">
<asp:LinkButton runat="server" ID="uxMaterialNeedLinkButton" CssClass="Label" CommandName="Select" CommandArgument='<%#Eval("ID")%>'>Select</asp:LinkButton>
<%#ReturnListOfMaterials(Container.DataItem)%>
</asp:Panel>
</p>
</ItemTemplate>
</asp:Repeater>
当用户单击生成 ItemCommand 的 LinkButton 时,我会突出显示用户选择的“行”
Protected Sub uxMaterialNeedsRepeater_ItemCommand(source As Object, e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles uxMaterialNeedsRepeater.ItemCommand
If e.CommandName = "Select" Then
' Highlight the selected row
Dim uxRepeaterItemPanel As Panel = CType(e.Item.FindControl("uxRepeaterItemPanel"), Panel)
uxRepeaterItemPanel.BackColor = Drawing.Color.LightGreen
End If
End Sub
但如果他们选择另一行,那么我将突出显示两行(突出显示?),我想取消突出显示原始行。所以我的想法是首先自动取消突出显示所有行。
我该怎么做?
我已经尝试了一些方法,包括在 ItemCreated 事件中设置它,但这也不起作用。
Protected Sub uxMaterialNeedsRepeater_ItemCreated(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles uxMaterialNeedsRepeater.ItemCreated
' Remove any highlighting from all rows
Dim uxRepeaterItemPanel As Panel = CType(e.Item.FindControl("uxRepeaterItemPanel"), Panel)
uxRepeaterItemPanel.BackColor = Nothing
End Sub
【问题讨论】:
-
这让我更近了一步。我需要做的是:
For Each thingy As RepeaterItem In uxMaterialNeedsRepeater.Items Dim uxRepeaterItemPanel As Panel = CType(e.Item.FindControl("uxRepeaterItemPanel"), Panel) uxRepeaterItemPanel.BackColor = Nothing Next但我不知道我可以把它放在什么事件中。 -
这个问题解决了吗?如果是,您可以发布您的解决方案作为答案,以便其他人可以从您的经验中受益。
-
干杯@ShaiCohen 我没有意识到我能做到这一点。