2012-05-18 4 views
0

내부를 클릭 :변경 레이블이 같은 내 asp.net 페이지에서 asp.net 리피터를 사용하고 리피터

<asp:Repeater ID="Repeater1" runat="server"> 
       <ItemTemplate> 
         <asp:Label ID="lblsSICCode" runat="server" Text='<%# Eval("sSICCode") %>'></asp:Label> 
       <asp:LinkButton ID="lnkSelect" runat="server" CommandArgument='<%# Eval("sSICCode") %>' OnCommand="LinkButton1_Command" CommandName="MyUpdate">Select</asp:LinkButton> 
       <asp:Label ID="Label1" runat="server" Text='<%# Eval("sSICCode") %>'></asp:Label> 
       </ItemTemplate> 
      </asp:Repeater> 

는 내가하는 LinkButton 클릭 할 때마다 레이블 텍스트를 변경하고 싶습니다. 다음 코드를 사용하고 있지만 모든 리피터 레이블이 변경됩니다. 선택한 행 앞에있는 Label1은 mylabel 값을 가져야합니다.

Protected Sub LinkButton1_Command(sender As Object, e As CommandEventArgs) 
    If e.CommandName = "MyUpdate" Then 
     For Each RI As RepeaterItem In Repeater1.Items 
      Dim MyLabel As Label = TryCast(RI.FindControl("lblsSICCode"), Label) 

      If MyLabel IsNot Nothing Then 

       If MyLabel.Text = e.CommandArgument Then 
        Response.Write(e.CommandArgument + "<br />") 
       End If 

      End If 
     Next 

    End If 
End Sub 
+0

실제로 루프를 특정 항목으로 제한하는 것이 아닙니다. 그것은 모든 것을위한 내용을 실행하고 있습니다. 원하는 특정 항목이 올바른 색인인지/자신의 상황에 적합한 요소가 포함되어 있는지 확인해야합니다. – Tejs

답변

0

LinkButton1 안에 명령 인수를 중계기 항목의 색인과 함께 넣습니다. 그런 다음 오른쪽 중계기 항목에서 수행 한 것처럼 Label 컨트롤을 찾습니다.

편집 :이 같은 것을보십시오 : 당신은 중계기 내부의 LinkButton의 명령 이름을두면

Private Sub Repeater1_ItemCommand(source As Object, e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles Repeater1.ItemCommand 
    If e.CommandName.Equals("MyUpdate") Then 
     Dim MyLabel As Label = TryCast(e.Item.FindControl("lblsSICCode"), Label) 
     Dim Label1 As Label = TryCast(e.Item.FindControl("Label1"), Label) 

     If MyLabel IsNot Nothing Then 
      Label1.Text = MyLabel.Text 
     End If 
    End If 
End Sub 

위의 이벤트 핸들러가 실행됩니다.

+0

업데이트 된 질문을 살펴보십시오. select1에서 mylaebl 값으로 label1을 채우고 싶습니다. – DotnetSparrow

+0

업데이트 된 게시물보기. linkbutton에 대한 이벤트 핸들러를 작성하는 대신 repeater에 대해 하나의 이벤트 핸들러를 작성하십시오. LinkButton을 클릭하면 ItemCommand가 실행됩니다. CommandName = "MyUpdate"가 Linkbutton 태그 안에 있는지 확인하십시오. 이 코드는 모든 중계기 항목을 반복 할 필요가 없기 때문에 더 효율적입니다. – sockfd

+0

죄송합니다. 업데이트 된 코드가 표시됩니다 ... – sockfd

관련 문제