0

並べ替えました。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 を生成する LinkBut​​ton をクリックすると、ユーザーが選択した「行」が強調表示されます

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
4

1 に答える 1