#asp.net #gridview
#asp.net #gridview
Вопрос:
У меня есть gridview, который я привязываю к datatable. После привязки я хочу настроить внешний вид gridview, но столбцы кажутся пустыми. Я вижу данные на странице, так что они там есть, но когда я пишу, GridView1.Columns[0].Visible = false;
я получаю исключение: index out of range
.
как мне это настроить?
Комментарии:
1. Куда вы привязываетесь, чтобы установить этот GridView1.Columns[0].Visible = false ?
2. Не могли бы вы опубликовать больше кода, который нам нужен, чтобы увидеть, что происходит.
Ответ №1:
Я не знаю, куда вы задаете столбец Visible = false
Но его правильное место находится в Databound Event of Gridview
protected void GridView1_DataBound(object sender, EventArgs e)
{
if (GridView1.Columns.Count > 0)
{
GridView1.Columns[0].Visible = false;
}
}
Комментарии:
1. @Yuval; Отредактируйте мой ответ. Попробуйте сейчас.
2. Содержит ли ваш gridview данные? Это условие работает только тогда, когда в вашем gridview есть данные.
3. я привязываю его к datatable и после этого пытаюсь скрыть столбец 1, и я получаю исключение
Ответ №2:
ОТРЕДАКТИРОВАНО
protected void GridView1_DataBound(object sender, EventArgs e)
{
try
{
GridView1.Columns[0].Visible = false;
}
catch
{
}
}
Я не знаю, зачем вы это делаете, но вы можете настроить представление сетки с помощью этого события.
Взгляните на эту ссылку.
Комментарии:
1. это скроет строку .. я хочу скрыть столбец и изменить внешний вид
2. я выполняю этот код при нажатии кнопки. я хочу сделать GridView1.Columns[0].Visible = false; далее, но я получаю исключение. DataRow workRow = table1.newRow(); workRow[«Field»] = FieldsDL.SelectedItem; workRow[«FieldIndex»] = FieldsDL.SelectedValue; table1.Rows.Add(workRow); ViewState[«table»] = table1; GridView1.DataSource = table1; // GridView1.AutoGenerateColumns = false; Просмотр сетки 1.Привязка данных ();
3. @Yuval, когда ты говоришь «изменить внешний вид», я думаю, CSS, что ты на самом деле имеешь в виду?
Ответ №3:
Я столкнулся с той же проблемой и нашел обходной путь на этом веб-сайте http://ramanisandeep.net/2009/04/07/how-to-hide-gridview-column-programmatically /
Проверьте предложение else.
По сути, вы просматриваете строку заголовка нужного столбца и каждую ячейку нужного столбца и устанавливаете видимость в значение false.
Я не уверен, что это наиболее рекомендуемый способ, но после некоторого поиска решения я доволен им и буду его использовать.
Удачи,