protected void ChangePage()
{
SqlConnection conn = DB.CreateConnection();
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from shipclass";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds);
GridView gv = new GridView();
//gv.AllowPaging = true;
gv.PageSize = 10;
gv.DataSource = ds;
gv.DataBind();
conn.Close();
phGridView.Controls.Add(gv);
}注释的那一行去掉注释后gv.DataBind();就报错,
Object reference not set to an instance of an object 请问是什么原因?
{
SqlConnection conn = DB.CreateConnection();
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from shipclass";
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
DataSet ds = new DataSet();
sda.Fill(ds);
GridView gv = new GridView();
//gv.AllowPaging = true;
gv.PageSize = 10;
gv.DataSource = ds;
gv.DataBind();
conn.Close();
phGridView.Controls.Add(gv);
}注释的那一行去掉注释后gv.DataBind();就报错,
Object reference not set to an instance of an object 请问是什么原因?
然后根据条数的多少来决定你要每页显示的条数
int intPageSize = 0;
intPageSize = (int)......;
if(intPageSize <=10)
{
//逻辑代码
}
else if(intPageSize>=10 || intPageSize<=50 )
{
//逻辑代码
}
else
(
//逻辑代码
)像这样就能够达到你的要求:动态创建GridView的分页问题啦
点下一页,上一页按钮的时候,动态添加的gridview就会消失,所以最好别用动态的吧
静态的给你一段1.控加几个分页要用的
<tr>
<td align="center" style="height: 25px">
<asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick"
runat="server">首 页</asp:LinkButton>
<asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页 </asp:LinkButton>
<asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton>
<asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton>
<asp:Label ID="LblCurrentIndex" runat="server"></asp:Label>
<asp:Label ID="LblPageCount" runat="server"></asp:Label>
<asp:Label ID="LblRecordCount" runat="server"></asp:Label>
</td>
</tr>2.绑定数据库源
this.NewsView.DataSource = ds.Tables[0];
this.NewsView.DataBind();
//分页
LblCurrentIndex.Text = "第 " + (NewsView.PageIndex + 1).ToString() + " 页";
LblPageCount.Text = "共 " + NewsView.PageCount.ToString() + " 页";
LblRecordCount.Text = "总共 "+ds.Tables[0].Rows.Count.ToString()+" 条";
if (ds.Tables[0].Rows.Count == 0)
{
btnFirst.Visible = false;
btnPrev.Visible = false;
btnNext.Visible = false;
btnLast.Visible = false; LblCurrentIndex.Visible = false;
LblPageCount.Visible = false;
LblRecordCount.Visible = false;
}
else if (NewsView.PageCount == 1)
{
btnFirst.Visible = false;
btnPrev.Visible = false;
btnNext.Visible = false;
btnLast.Visible = false;
} // 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
btnFirst.CommandName = "1";
btnPrev.CommandName = (NewsView.PageIndex == 0 ? "1" : NewsView.PageIndex.ToString()); btnNext.CommandName = (NewsView.PageCount == 1 ? NewsView.PageCount.ToString() : (NewsView.PageIndex + 2).ToString());
btnLast.CommandName = NewsView.PageCount.ToString();
//
}
catch(Exception ex)
{
Response.Write("数据库错误,错误原因:"+ex.Message);
Response.End();
}3.添加一个事件
protected void PagerButtonClick(object sender, EventArgs e)
{
NewsView.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
DataBindintToGridView();
}4.PageLoad中
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataBindintToGridView();
}
}
txtstate.Text = (int.Parse(txtstate.Text) + 1).ToString();
Bind();
int nPageCount;
DataTable o = ((DataSet)grdMainList.DataSource).Tables[0];
if (o.Rows.Count % 10 == 0)
{
nPageCount = (o.Rows.Count / 10)-1;
}
else
{
nPageCount = (int)(o.Rows.Count / 10);
}
string strCommandName=((ImageButton)sender).ID;//取得事件的对象名 switch(strCommandName) {
case "First":
_dg.CurrentPageIndex=0;//跳转到首页
PageOperate();
break;
case "Previous":
_dg.CurrentPageIndex=Math.Max(_dg.CurrentPageIndex-1,0);//跳转到上一页
PageOperate();
break;
case "Next":
_dg.CurrentPageIndex=Math.Min(_dg.CurrentPageIndex+1,_dg.PageCount-1);//跳转到下一页
PageOperate();
break;
case "Lastly":
_dg.CurrentPageIndex=_dg.PageCount-1;//跳转到最后一页
PageOperate();
break;
}
BindData();//绑定数据
}