ASP.NET gridview привязка не работает / элемент управления не отображается - PullRequest
2 голосов
/ 09 июня 2009

еще одна проблема для начинающих. Почему не работает следующий код со страницей asp.net?

protected void Page_Load(object sender, EventArgs e)
{
    List<string> list = new List<string>();
    list.Add("Teststring");
    this.GridView.DataSource = list;
}

GridView - это элемент управления GridView на этой странице asp. Тем не менее, сетка не отображается вообще. Это и включено, и видно. Плюс, когда я отлаживаю, GridView.Rows.Count равен 0. Я всегда предполагал, что вы можете просто добавить универсальные списки и все классы, реализующие IList в качестве источника данных, и тогда gridView автоматически отобразит содержимое? Или причина в том, что это было сделано в обработчике события page_load. и если, как я могу заполнить сетку без какого-либо взаимодействия с пользователем при запуске?

Еще раз спасибо.

Ответы [ 3 ]

4 голосов
/ 09 июня 2009

Вы должны вызвать DataBind ().

3 голосов
/ 09 июня 2009

Вы забыли вызвать метод .DataBind() GridView. Это то, что свяжет элемент управления с его источником данных и загрузит результаты.

Пример:

protected void Page_Load(object sender, EventArgs e)
{
    List<string> list = new List<string>();
    list.Add("Teststring");
    this.GridView.DataSource = list;
    this.GridView.DataBind();
}
2 голосов
/ 09 июня 2009

В отличие от winforms, для разработки ASP вам нужно специально позвонить GridView.DataBind();. Я также разбил бы этот код на отдельный метод и обернул бы начальный вызов в проверку обратной передачи. Это избавит вас от головной боли в будущем.

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostback)
   {
       List<string> list = new List<string>();
       list.Add("Teststring");
       bindMydatagrid(list);
   }
}

protected void bindMydatagrid(List<string> list)
{
    gv.DataSource = list;
    gv.DataBind();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...