容易么我, DataList分页在网上找了N个例子,分了三天,经历了N多挫折,心情从低谷到高山,又从高山到低谷,快弄出精神病了,好在有很多朋友帮忙,总算弄出来了,总结了下,发现N多的挫折竟然都是些很基础的知识,感叹啊,想提高快点真是要一步一个脚印,扎扎实实的.把代码贴出来,给以后要用留点参考.
后台:
protected
void
Page_Load(
object
sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
if (!IsPostBack)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
panel1.Visible = true;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
this.Session["tid"] = "";
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
GetDataBind("select * from land_showimages");
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
CurrentPage = 0;
ViewState["PageIndex"] = 0;
//计算总共有多少记录
RecordCount = CalculateRecord("");
lblRecordCount.Text = RecordCount.ToString();
//计算总共有多少页
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (RecordCount % PageSize != 0)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
PageCount = RecordCount / PageSize + 1;
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
PageCount = RecordCount / PageSize;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
lblPageCount.Text = (PageCount).ToString();
ViewState["PageCount"] = PageCount;
myDropDownList.Items.Clear();
DropDown();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
int
PageSize
=
6
, RecordCount, PageCount, CurrentPage;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private
void
GetDataBind(
string
sql)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int StartIndex;
//设定导入的起终地址
StartIndex = CurrentPage * PageSize;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
DataSet ds = new DataSet();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
OracleCommand comm = new OracleCommand();
comm.Connection = conn;
comm.CommandText = sql;
comm.CommandType = CommandType.Text;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
OracleDataAdapter myda = new OracleDataAdapter();
myda.SelectCommand = comm;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
myda.Fill(ds, StartIndex, PageSize, "land_showimages");
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
MyDataGrid.DataSource = ds.Tables["land_showimages"].DefaultView;
MyDataGrid.DataBind();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
lbnFirstPage.Enabled = true;
lbnNextPage.Enabled = true;
lbnPrevPage.Enabled = true;
lbnLastPage.Enabled = true;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (CurrentPage == (PageCount - 1))
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
lbnLastPage.Enabled = false;
lbnNextPage.Enabled = false;
}
if (CurrentPage == 0)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
lbnFirstPage.Enabled = false;
lbnPrevPage.Enabled = false;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (PageCount == 1)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
lbnFirstPage.Enabled = false;
lbnNextPage.Enabled = false;
lbnPrevPage.Enabled = false;
lbnLastPage.Enabled = false;
}
lblCurrentPage.Text = (CurrentPage + 1).ToString();
ViewState["PageIndex"] = CurrentPage;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
public
int
CalculateRecord(
string
tid)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int intCount;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
OraAccess ora = new OraAccess();
DBParaList para = new DBParaList();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (tid == "")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
intCount = ora.exeCountSql("land_showimages", new DBParaList());
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
para.AddPara("typeid", tid);
intCount = ora.exeCountSql("land_showimages", para);
}
ora.close();
return intCount;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
public
void
Page_OnClick(Object sender, CommandEventArgs e)
//
翻页按钮
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
CurrentPage = (int)ViewState["PageIndex"];
PageCount = (int)ViewState["PageCount"];
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
string cmd = e.CommandName;
//判断cmd,以判定翻页方向
switch (cmd)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
case "next":
if (CurrentPage < (PageCount - 1)) CurrentPage++;
break;
case "prev":
if (CurrentPage > 0) CurrentPage--;
break;
case "last":
CurrentPage = PageCount - 1;
break;
default:
CurrentPage = System.Convert.ToInt32(cmd);
break;
}
ViewState["PageIndex"] = CurrentPage;
myDropDownList.SelectedIndex = CurrentPage;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (this.Session["tid"] == "")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
GetDataBind("select * from land_showimages");
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
GetDataBind("select * from land_showimages where typeid='" + this.Session["tid"] + "'");
}
panel1.Visible = true;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
private
void
DropDown()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
for (int u = 0; u < PageCount; u++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
myDropDownList.Items.Add(new ListItem("第" + (u + 1).ToString() + "页", Convert.ToString(u)));
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
public
void
listchanged(
object
sender, System.EventArgs e)
//
页数下拉框
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
CurrentPage = myDropDownList.SelectedIndex;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
GetDataBind("select * from land_showimages where typeid='" + this.Session["tid"] + "'");
panel1.Visible = true;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
public
void
ddltype_OnSelectedIndexchanged(
object
sender, System.EventArgs e)
//
类别下拉框
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
string sql;
if (ddltype.SelectedValue == "-1")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
sql = string.Format("select * from land_showimages");
this.Session["tid"] = "";
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
sql = string.Format("select * from land_showimages where typeid={0}", ddltype.SelectedValue);
this.Session["tid"] = ddltype.SelectedValue;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
GetDataBind(sql);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
panel1.Visible = true;
CurrentPage = 0;
ViewState["PageIndex"] = 0;
//计算总共有多少记录
RecordCount = CalculateRecord(this.Session["tid"].ToString());
lblRecordCount.Text = RecordCount.ToString();
//计算总共有多少页
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
if (RecordCount % PageSize != 0)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
PageCount = RecordCount / PageSize +1;
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
PageCount = RecordCount / PageSize;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
lblPageCount.Text = (PageCount).ToString();
ViewState["PageCount"] = PageCount;
myDropDownList.Items.Clear();
DropDown();
}
前台:
<
div
style
="background-color: #ffffff"
>
<
asp:DropDownList
ID
="ddltype"
runat
="server"
AppendDataBoundItems
="true"
DataSourceID
="SDSTYPE"
AutoPostBack
="true"
DataTextField
="typename"
DataValueField
="id"
Width
="105px"
OnSelectedIndexChanged
="ddltype_OnSelectedIndexchanged"
>
<
asp:ListItem
Text
="--请选择类别--"
Value
="-1"
></
asp:ListItem
>
</
asp:DropDownList
>
<
asp:SqlDataSource
ID
="SDSTYPE"
runat
="server"
ConnectionString
="<%$ ConnectionStrings:ConnectionString %>"
ProviderName
="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand
='SELECT
"ID", "TYPENAME" FROM "LAND_IMAGETYPE" ORDER BY "TYPENAME"'
>
</
asp:SqlDataSource
>
<
br
/>
<
asp:DataList
ID
="MyDataGrid"
runat
="server"
Width
="100%"
ItemStyle-VerticalAlign
="Top"
CaptionAlign
="Bottom"
RepeatColumns
="3"
Height
="320px"
RepeatDirection
="Horizontal"
>
<
ItemTemplate
>
<
table
width
="100%"
>
<
tr
>
<
td
align
="center"
>
<
a
href
="imagesDetail.aspx?id=<%#Eval("
id") %
>
" target="_blank">
<
asp:Image
ID
="Image1"
runat
="server"
ImageUrl
='<%#
Eval("purl") %
>
' Width="100"
Height="60" />
</
a
>
<
br
/>
<
asp:Label
ID
="Label1"
runat
="server"
Text
='<%#
Eval("imagename") %
>
' Font-Size="12px">
</
asp:Label
>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
</
asp:DataList
>
<
asp:Panel
ID
="panel1"
runat
="server"
Visible
="true"
>
共有
<
asp:Label
ID
="lblRecordCount"
ForeColor
="red"
runat
="server"
/>
条记录
当前为
<
asp:Label
ID
="lblCurrentPage"
ForeColor
="red"
runat
="server"
/>
/
<
asp:Label
ID
="lblPageCount"
ForeColor
="red"
runat
="server"
/>
页
<
asp:LinkButton
ID
="lbnFirstPage"
Text
="首 页"
CommandName
="0"
OnCommand
="Page_OnClick"
runat
="server"
/>
<
asp:LinkButton
ID
="lbnPrevPage"
Text
="上一页"
CommandName
="prev"
OnCommand
="Page_OnClick"
runat
="server"
/>
<
asp:LinkButton
ID
="lbnNextPage"
Text
="下一页"
CommandName
="next"
OnCommand
="Page_OnClick"
runat
="server"
/>
<
asp:LinkButton
ID
="lbnLastPage"
Text
="末 页"
CommandName
="last"
OnCommand
="Page_OnClick"
runat
="server"
/>
<
asp:DropDownList
ID
="myDropDownList"
runat
="server"
AutoPostBack
="true"
OnSelectedIndexChanged
="listchanged"
>
</
asp:DropDownList
></
asp:Panel
>
</
div
>