Связанный столбец в ASP Grid view, когда невидимый недоступен - PullRequest
4 голосов
/ 12 марта 2009

У меня есть GridView с BoundColumns. Первые 2 столбца скрыты, и я хотел бы получить к ним доступ, используя gridView1.Rows [0] .Cells [0] .Text и gridView1.Rows [0] .Cells [1] .Text соответственно, и я получил пустую строку. Когда столбцы изменяются на видимые, я могу получить доступ к значениям. Я пытался изменить ширину столбца до нуля, как предлагалось на некоторых других форумах, но это никогда не решало проблему. Есть ли у кого-нибудь указания на то, что я могу делать неправильно?

Ответы [ 3 ]

7 голосов
/ 12 марта 2009

Если столбцы являются частью коллекции DataKeyNames, вы должны получить их значения из свойства GridView.DataKeys[index].value, как показано на сайте GridViewGuy .

Если, однако, они не являются частью коллекции DataKeyNames, то вы можете использовать следующий хак, чтобы убедиться, что значение сохраняется в ViewState (в отличие от нормального поведения для скрытых полей в ASP.NET 2+).

GridView1.DataSource = myDataSource;
// Set the column visibility to true before Databinding

GridView1.Columns[0].Visible = true;
GridView1.Columns[1].Visible = true;
GridView1.DataBind()

// Set the column visibility to false after Databinding
GridView1.Columns[0].Visible = false;
GridView1.Columns[1].Visible = false;
1 голос
/ 25 февраля 2011

Добавьте класс css hiddencol к столбцу, который вы хотите скрыть. Добавьте hiddencol класс к вашему CSS и все готово.

Вы по-прежнему можете получить доступ к столбцу в своем коде, но он не отображается на вашей странице.

<asp:BoundField DataField="Site_ID" ItemStyle-CssClass="hiddencol" />

.hiddencol
{
    display: none;
}
1 голос
/ 12 марта 2009

Это типичное поведение в ASP.NET, Visible = false, только делает элемент управления доступным в коде позади.

Лучше всего будет применить следующий стиль к этому столбцу:

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