2013-07-01 5 views
0

리피터 컨트롤을 사용하여 SqlDataSource의 데이터를 맞춤형 디자인 된 디스플레이 박스에 채우고 있습니다.리피터 내부에서 SqlDataSource의 데이터를 기반으로 레이블 컨트롤 속성을 변경하십시오.

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnDataBinding="Repeater_ItemDataBound"> 
<HeaderTemplate> 

</HeaderTemplate> 

<ItemTemplate> 

    <div class="bubble-content"> 
    <div style="float: left;"> 
     <h2 class="bubble-content-title"><%# Eval("CommentTitle") %></h2> 
    </div> 

    <div style="text-align: right;"> 
     <asp:Label ID="lbl_category" runat="server" Text=""><%# Eval("CommentType") %> 
     </asp:Label> 
    </div> 

    <div style="float: left;"> 
     <p><%# Eval("CommentContent") %></p> 
    </div> 
    </div> 
</ItemTemplate> 

<FooterTemplate> 
</FooterTemplate> 

</asp:Repeater> 

<asp:SqlDataSource ID="mySqlDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:myConnectionString %>" 
    SelectCommand="SELECT [CommentTitle],[CommentType],[CommentContent] FROM [Comments] WHERE ([PostId] = @PostId)"> 
    <SelectParameters> 
     <asp:QueryStringParameter Name="PostId" QueryStringField="id" Type="String" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

이제 세 가지 유형의 "설명 유형"이 데이터베이스에있을 수 있습니다. [CommentType]의 값에 따라 "lbl_category"의 CssClass 속성을 변경하고 싶습니다.

나는이 일을 시도 :

<asp:Label ID="lbl_category" runat="server" CssClass="<%# Eval("CommentType") %>" Text=""><%# Eval("CommentType") %></asp:Label> 

을하지만이 오류를 제공합니다 을 "서버 컨트롤이 잘 형성되지 않는다"뒤에 코드에서이를 달성 할 수있는 방법을 찾을 수 없어. 누군가 도와 주실 수 있습니까? 이에서 코드를 chaning

+1

나는 당신의 제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

1

시도 : 이것에

<asp:Label ID="lbl_category" runat="server" CssClass="<%# Eval("CommentType") %>" 

는 :

<asp:Label ID="lbl_category" runat="server" CssClass='<%# Eval("CommentType") %>' /> 
+0

고마워, 매력처럼 일했다 :) 그것은 나를 위해 계속 갈 수 있지만 C#에서 같은 방법이 있는지 알고 싶습니다. 마찬가지로 가치가 무엇인지 알았고 적절하게 컨트롤의 속성을 변경합니다. –

+1

예, OnItemBound 이벤트를 살펴보십시오. –