2014-07-18 2 views
0
<asp:DataList ID="DataList1" runat="server" RepeatColumns="5" RepeatDirection="Horizontal" 
    onitemcommand="DataList1_ItemCommand" 
    onselectedindexchanged="DataList1_SelectedIndexChanged" 
    ondatabinding="DataList1_DataBinding"> 

    <ItemTemplate> 
     <asp:HiddenField ID="Hdnqid" runat="server" Value='<%# Bind("Id") %>' /> 
     <asp:HiddenField ID="HidnResultStatus" runat="server" Value='<%# Bind("ResultStatus") %>' /> 

       <asp:Button ID="Butto" runat="server" Text='<%#Eval("Id") %>' CommandName="Save&Next" 
        CommandArgument='<%#Eval("Id") %>' /> 
    </ItemTemplate> 

</asp:DataList> 

버튼 값의 색상을 테이블 값으로 변경하고 싶습니다.DataBinding에서 데이터리스트 버튼의 동적 CSS 스타일을 변경하는 방법

답변

0

이렇게하는 한 가지 방법은 데이터 목록의 OnDataBound 이벤트를 사용하는 것입니다. 이벤트에서 버튼과 데이터 항목 속성을 얻을 수 있습니다. 여기에서 버튼의 속성을 다음과 같이 변경할 수 있습니다

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    Button button = e.Item.FindControl("Butto") as Button; 
    HiddenField HidnResultStatus = e.Item.FindControl("HidnResultStatus") as HiddenField; 
    string property = DataBinder.Eval(e.Item.DataItem, "colorproperty") as string; 
    //Here you can change the button color based on the value 
    if(HidnResultStatus.Value=="") 
     button.ForeColor = System.Drawing.Color.Black; 
    if(HidnResultStatus.Value=="1") 
     button.ForeColor = System.Drawing.Color.Brown; 

} 
+0

이 작업을 수행했지만 작동하지 않습니다. – user3852792

+0

오류가 있습니까? 디버그하고 확인할 수 있습니까? 버튼, 속성 등을 얻으시겠습니까? –

+0

여기에 데이터 목록 버튼에 오류가없고 작동하는 CSS가 없습니다. 보호 된 void DataList1_DataBinding (개체 발신자, EventArgs e) {foreach (DataList1.Items의 DataListItem 항목) {if (hdn.Value == "") { btn.BackColor = System.Drawing.Color.Black;} (hdn.Value == "1") {btn.BackColor = System.Drawing.Color.Brown;}}} – user3852792