2013-07-02 3 views
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> 

와 사용자가 나는 사용자가

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 

를 선택했다 '행'을 강조하지만,이 경우 ItemCommand를 생성하는 LinkButton을 클릭하면 다른 행을 선택하면 두 행이 강조 표시되고 (highlit?) 원래 행을 강조 표시하지 않으려합니다. 그래서 내 생각은 자동으로 모든 행을 먼저 강조 표시하는 것입니다.

어떻게하면됩니까?

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 
+1

확인이 아웃 : http://stackoverflow.com/questions/6281559/asp-net-repeater-loop-through-items-in-the-item-template – Alexander

+0

잘 한 걸음 더 가까이 저를 가져옵니다. 내가 뭘해야 이것이다 :'RepeaterItem에서 uxMaterialNeedsRepeater.Items 각 꼬추를 들어 희미한 uxRepeaterItemPanel 패널 =에서는 CType (e.Item.FindControl ("uxRepeaterItemPanel"), 패널) uxRepeaterItemPanel.BackColor = 아무것도 Next'으로 그러나 나는 그것을 놓을 수있는 어떤 사건을 해결할 수 없다. – Westicle

+0

이 질문이 해결 되었습니까? 그렇다면 솔루션을 응답으로 게시하여 다른 사람들이 귀하의 경험을 활용할 수 있도록 할 수 있습니다. –

답변

0

실제로 이것은 매우 간단한 해결책이었습니다.

페이지의 리피터 항목을 반복하여 모든 패널 컨트롤의 처음 색상을 먼저 재설정합니다.

For Each thingy As RepeaterItem In uxMaterialNeedsRepeater.Items 
    Dim uxRepeaterItemPanel As Panel = CType(thingy.FindControl("uxRepeaterItemPanel"), Panel) 
    uxRepeaterItemPanel.BackColor = Nothing 
Next 
관련 문제