2010-06-17 3 views
2

Привет У меня есть вид сетки, который динамически генерируется через C# с помощью DataSet. Я передаю поле ID строки (из базы данных) в представление сетки, поскольку это требуется, когда пользователь нажимает для редактирования записей. Однако я не хочу, чтобы пользователь мог просматривать столбец. Я пробовал следующее, но, похоже, он не работает? Может ли кто-нибудь предложить способ скрыть столбец или лучший способ привязки информации к строке сетки, чтобы ее можно было использовать на более позднем этапе. C#Gridview делает столбец невидимым

 DataColumn ColImplantCustomerDetailsID = new DataColumn(); 
     ColImplantCustomerDetailsID.ColumnName = "Implant ID"; 
     ColImplantCustomerDetailsID.DataType = typeof(int); 
     ColImplantCustomerDetailsID.Visable = false; <-- visable doens't work here. 

asp.net

ответ

4

DataColumn не имеет свойства «Видимость». Черт возьми, у него тоже нет свойства «Видимый».

Используйте это, прежде чем связать

gridviewNameHere.Columns[index].Visible = false; 

Вы можете сделать его видимым снова на одном из обработчиков событий.

4

Другой вариант, а не скрывает столбец, чтобы использовать DataKeyNames свойство GridView, чтобы сохранить имя поля ID. Затем вы можете использовать myGridView.SelectedValue для получения выбранного идентификатора.

+0

Спасибо, я заглянула в делать это таким образом. Я не мог совсем обернуться, но мне, возможно, придется взглянуть еще раз. – flyersun

2

Использовать индекс столбца, чтобы скрыть его, когда вы его инициализации ...

grid.Columns[index].Visible = false; 

Я на самом деле скрыть несколько вещей, как вы предлагаете, пример - имена состояния базы данных для этой строки, которые могут быть использованы в коде, который пользователю не нужно видеть.

0

В OnRowDataBound случае GridView компонента:

// c# 
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    int index = 0; // put the index of the column you need hide. 
    e.Row.Cells[index].Visible = false; 
} 
Смежные вопросы