我有一个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();
}
答案 0 :(得分:1)
我认为根据您的aspx
和您的.cs
。您的css文件“GridView1
”中存在一些问题。请尝试删除css类并告诉我们。问题是否仍然存在。
注意:
这与你的问题无关。但我认为你应该将你的代码分层,而不是在你的页面代码中写下所有代码。
阅读:
答案 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提供有关序列化的错误,请使用会话。这将使您的代码更高效和优化。