привязка asp c # gridview к пользовательскому виду с данными

#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.

Я не уверен, что это наиболее рекомендуемый способ, но после некоторого поиска решения я доволен им и буду его использовать.

Удачи,