並べ替えました。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
しかし、別の行を選択すると、2 つの行が強調表示され (強調表示されますか?)、元の行の強調表示を解除したいと考えています。だから私の考えは、最初にすべての行を自動的にハイライト解除することです。
どうすればいいですか?
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