3

BoundFields を使用して GridView (動的に作成) を使用しています。DataBound イベントで BoundField の値を変更したい。この値にはブール値 (True / False) が含まれているため、「アクティブ」/「非アクティブ」に変更する必要があります。これが動的 GridView でない場合は TemplateField を使用しますが、GridView を動的に作成しているため、BoundField で行うのが最も簡単な方法です。

しかし、私はそれを変更する方法を正確に理解していません。

これは、正しく発生する私の DataBound イベントです。

protected void gr_RowDataBound(object sender, GridViewRowEventArgs  e)
    {
        DataRowView drv = (DataRowView)e.Row.DataItem;
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (drv["IsRegistered"] != DBNull.Value)
            {
                bool val = Convert.ToBoolean(drv["IsRegistered"]);
                //???? HOW TO CHANGE PREVIOUS VALUE TO NEW VALUE (val) HERE?
            }
        } 
    }
4

2 に答える 2

6

たとえば、TemplateFieldでコントロールを検索して、そのプロパティを設定するために使用することBoundFieldsはできません。代わりに:を設定しますFindControlTextCell-Text

protected void gr_RowDataBound(object sender, GridViewRowEventArgs  e)
{
    DataRowView drv = (DataRowView)e.Row.DataItem;
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if (drv["IsRegistered"] != DBNull.Value)
        {
            bool val = Convert.ToBoolean(drv["IsRegistered"]);
             // assuming that the field is in the third column
            e.Row.Cells[2].Text =  val ? "Active" : "Inactive";
        }
    } 
} 

それとは別にTemplateFields、ダイナミックでも使用できますGridView

TemplateFieldをプログラムで追加する方法

于 2012-10-05T14:28:00.720 に答える