asp .net Как скрыть TemplateField столбца gridview, но при этом получить доступ к его значению - PullRequest
0 голосов
/ 01 марта 2012

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

     protected void grdTime_OnDataBound(object sender,EventArgs e)
    {
        grdTime.Columns[1].Visible = false;
    }

, который я пытаюсь скрыть в этом столбце, но получаю следующую ошибку.Если я удаляю строку внутри метода, он работает.Здесь ошибка.Индекс был вне диапазона.Должен быть неотрицательным и меньшим, чем размер коллекции.Имя параметра: индекс

Ответы [ 4 ]

0 голосов
/ 01 марта 2012

Вы можете использовать это в теге gridview на странице .aspx

<Columns>

      <asp:BoundField HeaderText="Merchandise Id" DataField="MerchandiseId"  Visible="false" /></columns>
0 голосов
/ 01 марта 2012

скрыть столбец в событии Row_Created

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Cells[1].CssClass = "hiddencol";
        //e.Row.Cells[2].CssClass = "hiddencol";
    }
    else if (e.Row.RowType == DataControlRowType.Header)
    {
        e.Row.Cells[1].CssClass = "hiddencol";
        //e.Row.Cells[2].CssClass = "hiddencol";
    }
}

здесь hiddencol класс css

.hiddencol
{
    display:none;
}

в приведенном выше коде я скрываю второй столбец моей сетки

0 голосов
/ 01 марта 2012

Если вы установили AutoGenerateColumns в GridView на true (по умолчанию), коллекция столбцов пуста. Следующее должно работать тогда:

1.)

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
        e.Row.Cells[0].Visible = false;
}

2.) * * 1 010

foreach (TableRow row in GridView1.Controls[0].Controls)
{
    row.Cells[0].Visible = false;
}
0 голосов
/ 01 марта 2012

Попробуйте этот код в методе и затем проверьте ..

grdTime.Columns [0] .Visible = false;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...