Отображение данных в GridView с использованием набора данных - PullRequest
1 голос
/ 18 августа 2010

Я пытаюсь отобразить набор данных для моего приложения ASP.NET. Кажется, что когда я нажимаю кнопку события, данные не отображаются в сетке.

У меня есть базовая страница со следующим:

<form id="form1" runat="server">
     <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:UpdatePanel runat="server" id="UpdatePanel" updatemode="Conditional">
            <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server" Width="200" Height="300">
                </asp:GridView>
                <asp:Button runat="server" id="UpdateButton1" onclick="UpdateButton_Click" text="Update" />               
            </ContentTemplate>
        </asp:UpdatePanel>

    </form>

Тогда в коде у меня есть следующее:

protected void UpdateButton_Click(object sender, EventArgs e)
        {
            string SQLConfigSettings = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
            SqlConnection sqlconn = new SqlConnection(SQLConfigSettings);

            sqlconn.Open();

            SqlDataAdapter adapter = new SqlDataAdapter("Select * from Student", sqlconn);

            DataSet ds = new DataSet();
            adapter.Fill(ds);

            GridView1.DataSource = ds;
            UpdatePanel.Update();

        }

Я что-то упустил? Должен ли набор данных отображаться в сетке? Когда я нажимаю кнопку, ничего не происходит.

Спасибо:)

Ответы [ 3 ]

1 голос
/ 18 августа 2010

Вам нужно добавить

GridView1.DataBind() сразу после Gridview1.DataSource.

Так становится:

...
          DataSet ds = new DataSet();
            adapter.Fill(ds);

            GridView1.DataSource = ds;
            GridView1.DataBind();
            UpdatePanel.Update();

Если вам нужна дополнительная информация о методе .DataBind, проверьте MSDN на нем

0 голосов
/ 18 августа 2010

Поставьте точку останова в первой строке кода в UpdateButton_Click и запустите ее.

Достигнута ли эта точка останова?

Пройдите каждую строку кода после этого и проверьте значения переменных.DataSet заполняется?Можете ли вы увидеть DataTable и DataRows?

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

0 голосов
/ 18 августа 2010
GridView1.DataSource = ds; 

Попробуйте упомянуть таблицу внутри набора данных. Что-то вроде ds.Tables [0] или если вы знаете имя таблицы ds.Tables ["table_name"]

...