GridView分页问题

时间:2011-08-08 09:02:56

标签: c# asp.net gridview paging

我有一个gridview设置为进行分页,但它无法正常工作。

只有第一页的控件可见 - 其他页面都有框,但内部无法控制。

有谁知道为什么会这样?我已经检查过我有多页数据。

谢谢,

奥利弗

我附上了一个屏幕截图,希望能说明我的问题。

http://i.stack.imgur.com/NOFnB.jpg

编辑:gridview的来源

    <asp:GridView ID="GridView1" runat="server" OnPageIndexChanging="GridView1_PageIndexChanging" 
    CssClass="GridView1" OnSelectedIndexChanged="GridView_SelectedIndexChanged"
    AllowPaging="True" PageSize="20">      
    <selectedrowstyle backcolor="LightCyan" forecolor="DarkBlue" font-bold="true" />
</asp:GridView>

使用在c#

中生成的数据集填充它

编辑:c#codebehind

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        bindGridView();
    }

    public void bindGridView()
    {
        //declare the connection string to use
        string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

        //create sql connection
        SqlConnection mySQLconnection = new SqlConnection(connectionString);

        //open connection
        mySQLconnection.Open();

            //define command using text string
            SqlCommand mySqlCommand = new SqlCommand(sqlTester, mySQLconnection);
            SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlCommand);

            //create dataset to fill gridview with
            DataSet myDataSet = new DataSet();
            mySqlAdapter.Fill(myDataSet);

            //fill gridview
            GridView1.DataSource = myDataSet;
            GridView1.DataBind();

        //close the sql connection
        mySQLconnection.Close();
    }

2 个答案:

答案 0 :(得分:1)

我认为根据您的aspx和您的.cs。您的css文件“GridView1”中存在一些问题。请尝试删除css类并告诉我们。问题是否仍然存在。

注意:

这与你的问题无关。但我认为你应该将你的代码分层,而不是在你的页面代码中写下所有代码。

阅读:

  • 分层于asp.net。
  • ORM。

答案 1 :(得分:0)

您正在为每个页面索引更改事件建立连接和数据库之旅。它会导致很多开销。试试这个。

public void bindGridView()
{
    //declare the connection string to use
    string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

    //create sql connection
    SqlConnection mySQLconnection = new SqlConnection(connectionString);

    //open connection
    mySQLconnection.Open();

        //define command using text string
        SqlCommand mySqlCommand = new SqlCommand(sqlTester, mySQLconnection);
        SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlCommand);

        //create dataset to fill gridview with
        DataSet myDataSet = new DataSet();
        mySqlAdapter.Fill(myDataSet);

        //fill gridview
        GridView1.DataSource = myDataSet;
        GridView1.DataBind();
        viewstate.add("myDataSet",myDataSet);

    //close the sql connection
    mySQLconnection.Close();
}

在页面索引更改事件中,执行此操作...     protected void GridView1_PageIndexChanging(object sender,GridViewPageEventArgs e)     {         GridView1.PageIndex = e.NewPageIndex;         GridView.datasource =(数据表)的ViewState [ “myDataSet”);         GridView.DataBind();     }

如果viewstate提供有关序列化的错误,请使用会话。这将使您的代码更高效和优化。