0

古いデータグリッドを含む単純なASP.netページがあります。ユーザーがボタンをクリックすると、selectステートメントが実行され、データがグリッドにバインドされます。問題は、ページが読み込まれた後、画面がハングすることです。テーブルにはレコードが1つだけあります。

ASPページ

<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();
   }
4

2 に答える 2

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();
   }
于 2012-06-25T03:16:46.000 に答える
0

DataSource を割り当てた後、mygrid.DataBind() を呼び出す必要がありますか? ぶら下がっていない可能性があります。おそらく、データバインドでグリッドを表示していないだけです。

于 2012-06-25T02:26:25.050 に答える