2

次のリンクのソリューションを使用して列を非表示にします

GridViewでTemplateField列を非表示にする方法

ただし、gridviewは非表示の行がnull値であるため、更新操作で問題が発生します。では、データバインド後に列を非表示にする方法は?

protected void begv_OrderDetail_RowCreated(object sender, GridViewRowEventArgs e)
{
    ((DataControlField)begv_OrderDetail.Columns.Cast<DataControlField>().Where(fld => fld.HeaderText == "FileNo").SingleOrDefault()).Visible = "False";
}
4

2 に答える 2

9

これを試して、

grid1.Columns[columnIndex].Visible= false;

質問者のコメントに基づいて編集し、非表示の列の値を取得します

非表示フィールドを使用して、列ごとの値を格納できます。この記事には、非表示フィールドの使用方法に役立つ例があります。

列を非表示にする代わりに、列のデータをdatakeynamesに入れて、後でそれらの値にアクセスできます。これは、DataKeyNamesの使用方法を把握するのに役立ちます。この方法では、データキー名からIDを渡して、レコードを取得する必要がある場合があります。

于 2012-10-09T19:13:11.127 に答える
0

この例を試してください(私は英語を話しません)

RowDataBoundに..。

 protected void gvTeste_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            teste listaTeste = e.Row.DataItem as ListaTeste;

            if (listaTeste.ID == 0)
            {
                e.Row.Cells[2].Text = "Não Atribuido";
            }

            if (e.Row.Cells[7].Text == "01/01/0001" || e.Row.Cells[8].Text == "01/01/0001")
            {
                **e.Row.Visible = false;** // disable row
            }
        }
    }
于 2012-10-09T19:36:17.333 に答える