2011-08-16 3 views
2

이 레이블은 리피터 안에 있습니다. 리피터 안의 ASP : 레이블 텍스트 변경하기

이 레이블의 텍스트를 변경하려고합니다.이 코드는

뒤에 있습니다.
 For Each Item As RepeaterItem In dg.Items 
    Dim l As New label 
     l = CType(Item.FindControl("lblsub"), System.Web.UI.WebControls.Label) 
     l.text="test" 
    Next 

불행히도이 코드는 나에게 적합하지 않습니다. 텍스트 가치는 변하지 않으므로 여기서 좀 도와 드리겠습니다

thanks

답변

1

이 질문에서 내 대답보기. 그것이 당신의 문제를 해결할 것이라는 것을 믿으십시오.

Getting the databound value from repeater control in asp.net

EDIT 모든

첫째, 당신은 항상 당신의 마크 업에 따옴표를 사용하십시오 :

<asp:Label ID="lblsub" runat="server" Text="sdds" /> 

뒤에 코드에서 이런 일을보십시오. 내 VB가 조금 녹슬 었는지 용서해주세요.

For Each Item As RepeaterItem in dg.Items 
    Dim l As Label = CType(Item.FindControl("lblsub"), Label) 
    l.Text = "test" 
Next 

구문에 약간의 문제가있었습니다. 그들이 당신의 문제를 일으키는 지 모르겠지만 가장 쉬운 방법을 먼저 얻으십시오.

+0

확실하지 않은 내 친구, 내가 너무 당신의 코드에 널 (null) 무엇입니까 – baaroz

+0

레이블의 텍스트를 변경하는 방법을 보지 못했다 객체 참조가 객체의 인스턴스로 설정되지 않습니다. – baaroz

+0

어떤 시점에서 텍스트를 변경하려고합니까? 코드를 ItemDataBound 이벤트로 옮길 수 있습니까? 이 접근법은 분명히 효과적이므로 계속 진행되어야합니다. –

2

해당 코드는 언제 실행됩니까?

당신은 당신의 Page_Load에서 다음을 수행하여 이후에 중계기를 리 바인드 있지 않은지 확인 : 당신이 코드의이 비트를 리피터가 결합 될 때마다 수행해야하는 경우, 다음에 코드를 넣어

Sub Page_load 
    If not Page.IsPostBack Then 
     BindRepeater() 
    End If 
End Sub 

을 데이터 바인딩 이벤트 :

Protected Sub dg_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles dg.ItemDataBound 
    Select Case e.item.itemtype 
     Case ListItemType.Item, ListItemType.AlternatingItem 
    Dim l As Label = e.Item.FindControl("lblsub") 
    l.Text = "foo" 
    End Select 
End Sub 

나는

+0

당신의 코드를 시도했지만 null이 점점 : System.NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. – baaroz

+0

null 참조 예외를 일으키는 것으로 생각되는 머리글/바닥 글을 포함하지 않도록 코드를 변경했습니다. – Curt

0

C# 코드 샘플 (그것이 내가해야 구문 그렇게 확신 나와 함께 모든 프로그래밍 소프트웨어를 없어 System.NullReferenceException : nside 방법 또는를 Page_Load) 당신의 대답에 보는 것을

foreach (RepeaterItem rt in MyRepeater.Items) 
      { 
       Label l = ((Label)rt.FindControl("lblPrice")); 
       l.Text = "200"; 
      } 
관련 문제