Как скрыть столбец gridview после привязки данных?

Я скрываю свои столбцы, используя решение по следующей ссылке

Как скрыть столбец TemplateField в GridView

Однако это вызывает проблемы с операциями обновления, поскольку gridview действует как скрытые строки, имеющие нулевое значение. Так как же скрыть столбцы после привязки данных?

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

Ответы на вопрос(2)

Решение Вопроса

Попробуй это,

grid1.Columns[columnIndex].Visible= false;

Редактировать на основе комментария спрашивающего, для получения значений скрытых столбцов

Вы можете использовать скрытые поля для хранения значений столбцов. этостатья Есть пример, который поможет, как использовать скрытые поля.

Вместо того, чтобы скрывать столбец, вы можете поместить данные столбцов в datakeynames и позже получить доступ к этим значениям. Это будет полезно при получении как использоватьDataKeyNames, При использовании этого метода вам может понадобиться передать идентификатор из имен ключей данных и получить запись.

 HOY10 окт. 2012 г., 10:48
проблема не заключалась в обновлении, когда строка скрыта, на этот раз, когда скрытая строка видна, она не обновляет значение, так как использует datakeyname в качестве параметра и сохраняет текущее значение
 Adil09 окт. 2012 г., 22:09
Вместо того, чтобы скрывать столбец, вы можете поместить данные столбцов в datakeynames и позже получить доступ к этим значениям. Это будет полезно при получении концепции.codeproject.com/Articles/23833/DataKeyNames
 HOY10 окт. 2012 г., 07:07
Спасибо большое, добавив скрытый столбец »Значение данных в datakeynames решило мою проблему.
 HOY09 окт. 2012 г., 21:49
это не работает. Я вручную поместил некоторое значение в базу данных для Gridview. Когда мой столбец скрыт, кнопка обновления обновляет это значение с нулем. Когда столбец не скрыт, значение по умолчанию остается тем же, что и после кнопки обновления (в чем отличие этого от моего ?, aren 'т они же?)

в 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
            }
        }
    }
 Nitesh09 окт. 2012 г., 22:18
он хочет, чтобы колонка была скрыта, а не строка!

Ваш ответ на вопрос