2014-02-20 2 views
0

서버 쪽 손자 인 레이블의 텍스트 값으로 반환 될 String의 DetailsView에서 Templatefield의 HeaderText를 사용하려고합니다. Templatefield. 머리글 텍스트 "케어 플랜 의도"를 코드를 사용하여 인덱스를 사용하는 대신 이름으로 명시 적으로 참조한 다음 문자열에서 사용하여 값의 값이 SQL 데이터 소스의 평가 인 레이블의 텍스트 값을 바꿉니다. 특정 crieria를 충족하지 않습니다. 예를 들어, 아래 예에서 Eval ("CarePlanIntent")의 값이 ok이면 모두 양호하고 양호합니다. 그렇지 않으면 "Care Plan Intent가 입력되지 않았거나 충족되지 않았습니다. 설정 기준 ".인덱스 대신 텍스트 값을 사용하여 TemplateField의 HeaderText 참조

<asp:DetailsView ID="dvTest"> 
<Fields> 
<asp:TemplateField HeaderText="Care Plan Intent:"> 
    <ItemTemplate> 
     <asp:Label skinid="tablabelblack" id="lblIntent" runat="server" Text='<%# Eval("CarePlanIntent") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
</Fields> 
</asp:DetailsView> 
당신은이 작업을 수행하기 위해 LINQ를 사용할 수 있습니다

답변

0

:

var field = dvText.Fields.First(i => i.HeaderText == "Care Plan Intent:"); 
var lbl = (Label)field.FindControl("lblIntent"); 

if (lbl.Text == "Y") 
    lbl.Text = "New Text"; 

뭐 그런 .... 내가 잘못 등록 또는 몇 가지 방법이있을 수 있습니다; 그러나 그것은 그렇게되어야합니다.

+0

미안하지만 우리의 설정은 약간 고대이며 우리는 LINQ가 없습니다. .net 2.0과 호환성이 있습니까? 감사합니다 –

0

샘플을 기반으로 헤더 텍스트로 적절한 템플릿 필드를 찾는 대신 상세보기에서 레이블을 가져올 수 있습니다.

Dim lblIntent As Label = CType(dvTest.FindControl("lblIntent"), Label) 
If lblIntent.Text <> "Your Condition" Then 
    lblIntent.Text = "Some New Text" 
End If 
+0

이것은 단지 레이블의 Templatefield의 HeaderText가 아닌 레이블 값을 반환합니까? –

+0

@PaulStevens 죄송합니다, 질문의 일부를 잘못 읽었습니다. 그러나 구체적으로 TemplateField를 이름으로 참조하면 무엇을 의미합니까? 헤더 텍스트에서와 같이? 그렇다면 중복되는 것은 아니겠습니까? 같은 텍스트를 사용하여 머리글 텍스트를 가져올 수 있습니다. 이 시점에서 이미 헤더 텍스트를 알고 있습니다. 다른 식별자로, 나는 인덱스에 의해서만 있다고 믿는다. 죄송합니다. 오해하는 경우. – singularhum

관련 문제