2012-06-25 2 views
0

У меня есть простая страница ASP.net со старым datagrid. Когда пользователь нажимает кнопку, выполняется оператор select и привязывает данные к сетке. Проблема заключается в загрузке страницы, экран просто зависает. В таблице всего 1 запись.datagrid замораживание перед связыванием

ASP PAGE

<asp:Button ID="buttonclick" OnClick="clickit" runat="server" Text="GO" /> 

<asp:DataGrid ID="mygrid" runat="server" 
AutoGenerateColumns="true"></asp:DataGrid> 

КОД ЗА

public void clickit(Object sender, EventArgs e) 
    { 
     string sql = "SELECT a from table1"; 
     SqlConnection connection = new SqlConnection(connectionstring); 
     SqlDataAdapter adap= new SqlDataAdapter(sql, connection); 
     DataTable table = new DataTable(); 
     connection.Open(); 
     adap.Fill(table); //page reloads here, but hangs 
     mygrid.DataSource = table; 
     connection.Close(); 
    } 
+0

Вы пробовали страницу в разных браузерах, и если вы не испытываете такое же поведение? – Kane

+0

Вы можете подключиться и заполнить со своего домашнего компьютера? –

+0

Это не имеет значения, но не следует ли вызывать mygrid.DataBind()? –

ответ

1

Я отредактировал ваш код, теперь он должен работать.

public void clickit(Object sender, EventArgs e) 
{ 
    //call the function 
    this.bindGrid(); 
} 

//function to populate the datagrid with the data from the datasource 
    private void bindGrid() 
    { 
    string sql = "SELECT a from table1"; 
    SqlConnection connection = new SqlConnection(connectionstring); 
    SqlDataAdapter adap= new SqlDataAdapter(sql, connection); 
    DataTable table = new DataTable(); 
    connection.Open(); 
    adap.Fill(table); //page reloads here, but hangs 
    mygrid.DataSource = table; 
    //bind the control with the data in the datasource 
    mygrid.DataBind(); 
    connection.Close(); 
    } 
0

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

Смежные вопросы