Связывание GridView после удаления столбца - PullRequest
2 голосов
/ 18 января 2012

Я удаляю столбец из моего GridView при одной обратной передаче и привязываю его при второй обратной передаче.После связывания, когда страница отображается, она не отображает мой GridView.

Тот же сегмент кода работал, когда я использовал ASP.NET 3.5, но в 4.0 он не отображает GridView.Может кто-нибудь сказать, пожалуйста, почему это происходит?

Заранее спасибо.

.aspx Код:

<asp:GridView>
<Columns>
<asp:BoundField HeaderText="StudName" DataField="Name" />
<asp:BoundField HeaderText="StudAddress" DataField="Address" />
<asp:BoundField HeaderText="StudPhNo" DataField="PhNo" />
</Columns>
</asp:GridView>

Код серверной стороны:

Button1_Click(object sender, EventArgs e)
{
   //removes all columns ffrom grid.
    for(int i=0;i<gridview1.Columns.Count;i++)
        gridview1.Columns.RemoveAt(0);
}



Button2_Click(object sender, EventArgs e)
{
    gridview1.DataSource = StudList;
    //corrected name of grid
    gridview1.DataBind();
}

1 Ответ

0 голосов
/ 18 января 2012

Ваш пример кода показывает, что вы запускаете ненужный цикл for для удаления столбца 0. Я бы удалил этот цикл, если вы собираетесь удалить только первый столбец. Использование RemoveAt(0) всегда будет ссылаться на ваш первый столбец, и как только вы удалите Columns[0], ваш следующий столбец станет Columns[0], это будет убирать ваши столбцы.

Кроме того, вы указываете источник данных для gridview1 GridView, а затем пытаетесь DataBind() отдельный GridView, gridview .

Если вы хотите скрыть столбец, я бы предложил вам сделать это:

gridview1.Columns[0].Visible = false;

, где 0 - индекс вашего столбца.

...