GridView в ASP.NET не отображается с данными или без них

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

вот мой код:

<asp:GridView ID="GridAllStore"  runat="server" AutoGenerateColumns="False" Width="100%"  ViewStateMode="Enabled">

public partial class AdminPanel : System.Web.UI.Page
{
    storelocatorDataSetTableAdapters.storedbTableAdapter tastore = new storelocatorDataSetTableAdapters.storedbTableAdapter();
    storelocatorDataSetTableAdapters.View_1TableAdapter taview = new storelocatorDataSetTableAdapters.View_1TableAdapter();

    List<storelocatorDataSet.storedbRow> lststore = new List<storelocatorDataSet.storedbRow>();
    List<storelocatorDataSet.View_1Row> lstview = new List<storelocatorDataSet.View_1Row>();
    protected void Page_Load(object sender, EventArgs e)
    {
        lstview = taview.GetData().ToList();
        GridAllStore.DataSource = lstview; 
    }
}

3 ответов


Я думаю, проблема в том, что вы не определили какие-либо столбцы для отображения. Вы должны явно определить столбцы при установке AutoGenerateColumns значение false.

чтобы убедиться, что основы работают set AutoGenerateColumns и так:

<asp:GridView ID="GridAllStore"  runat="server" AutoGenerateColumns="true" Width="100%"  ViewStateMode="Enabled">

С AutoGenerateColumns установите значение true, назначенный источник данных и DataBind() называется, вы должны начать видеть некоторые данные. Как только вы начнете видеть данные, вы можете определить конкретные столбцы, которые хотите отобразить.

так как вам нужно только чтобы привязать сетку при загрузке первой страницы, Используйте !Page.IsPostBack состояние:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        GridAllStore.DataSource = lstview;
        GridAllStore.DataBind();
    }
}

изменить ваш код:

protected void Page_Load(object sender, EventArgs e)
{
    lstview = taview.GetData().ToList();
    GridAllStore.DataSource = lstview; 
    GridAllStore.DataBind();
}

и измените разметку GridView на:

<asp:GridView ID="GridAllStore"  runat="server" AutoGenerateColumns="True" Width="100%"  ViewStateMode="Enabled" />

заметил, что теперь AutoGenerateColumns="True" поскольку это покажет данные и создаст столбцы. Возможно, вам придется настроить то, что показано. Чтобы сделать это, так как вы действительно не знаете, что вы делаете сейчас, переключитесь на представление дизайна, и вы можете редактировать шаблон gridview.

проверьте этот пост для некоторой помощи в настройке столбцов и данных, которые вы выход. http://msdn.microsoft.com/en-us/library/bb288032.aspx


вы пытались добавить следующую строку сразу после установки источника данных ?

GridAllStore.DataBind();