2013-02-25 41 views
1

我在asp.net中使用GridView基於返回值的按鈕設置值

第一列是按鈕控制的列表 -

<ItemTemplate> 
    <asp:Button ID="statusButton" runat="server" Text="Select" 
      OnClick="statusButton_CheckedChanged" /> 
</ItemTemplate> 

但是我想修改數據綁定此按鈕基於在表中的另一列的值的背景顏色和文本值。

我的問題是我需要檢查另一列的值,因爲它們將被檢索,它們將是1-1,該值將設置按鈕的設計。

如何檢查這個綁定字段的值 -

<asp:BoundField DataField="EXCLUDE" HeaderText="EXCLUDE" SortExpression="EXCLUDE" 
    ReadOnly="True" HeaderStyle-CssClass = "hideGridColumn" 
    ItemStyle-CssClass="hideGridColumn"/> 

爲了然後設置按鈕的顏色和文字?

回答

1

的建議您可以使用gridview的RowDataBound事件,例如:

myGrid.RowDataBound += new GridViewRowEventHandler(myGrid_RowDataBound); 
    void myGrid_RowDataBound(object sender, GridViewRowEventArgs e) 
      { 
       //Raised after each row is databound 
       if (e.Row.RowType == DataControlRowType.DataRow) 
       { 
        string value = e.Row.Cells[5].Text; //sixth column 
        if (value == "1") 
        { 
         //change button color (assuming button is in first column) 
         Button myButton = e.Row.Cells[0].Controls[0] as Button; 
         myButton.BackColor = Color.Red; 
+0

這可以檢索值!但是,該按鈕獲取此錯誤 - 無法隱式地將類型'System.Web.UI.Control'轉換爲'System.Web.UI.WebControls.Button'。存在明確的轉換是否缺少演員?我該如何解決這個問題? – Ebikeneser 2013-02-25 12:08:09

+0

@Jambo:嘗試e.Row.Cells [0] .Controls [0]作爲Button;我也更新了我的答案 – 2013-02-25 13:44:17

1

改變它根據你的條件爲

<ItemTemplate> 
    <asp:Button ID="statusButton" runat="server" Text="Select" 
     OnClick="statusButton_CheckedChanged" /> 
</ItemTemplate> 

使用不同的CSS類

.class1{ 
color:red; 
font-size:10; 
} 
.class2{ 
color:blue; 
font-size:12; 
} 

<ItemTemplate> 
    <asp:Button ID="statusButton" runat="server" Text="Select" 
     CssClass='<%# Convert.ToString(Eval("EXCLUDE"))== "1" ? "class1" : "class2" %>' 
     OnClick="statusButton_CheckedChanged" /> 
</ItemTemplate> 

您可以在RowDataBound事件中使用它從C#通過@edwin

+0

不錯的建議與CSS類,但是我需要稍微更多的控制在處理後面的代碼中的值。 – Ebikeneser 2013-02-25 12:55:32