1

私はGridViewasp.netで使用しています。

最初の列はボタン コントロールのリストです。

<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"/>

ボタンの色とテキストを設定するには?

4

2 に答える 2

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@edwinが提案するように、イベントのC#から使用できます

于 2013-02-25T11:45:42.477 に答える
1

RowDataBoundたとえば、次のように gridviewのイベントを使用できます。

    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;
于 2013-02-25T11:46:51.430 に答える