62,074
社区成员
发帖
与我相关
我的任务
分享
<h1>简易留言板</h1>
<asp:DataList ID="DataList2" runat="server" OnItemCommand="DataList2_ItemCommand">
<ItemTemplate>
<div id="liuyan">
<div id="fu">
<div id="zuo"><%--前台留言板左右两列布局,这里是左,显示昵称头像等。--%>
<ul>
<li class="li1">昵称:<%# Eval("name")%></li>
<li class="li1">QQ:<%# Eval("qq") %></li>
<li class="li1">头像:<asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("touxiang")%>'/></li>
<li class="li1"><marquee><%# Eval("name")%></marquee></li>
</ul>
</div>
<div id="youu"><%--前台留言板左右两列布局,这里是右边,显示用户发的文字。--%>
<%# Eval("content") %>
</div>
</div>
</div>
</ItemTemplate>
<FooterTemplate><%--以下是分页的四个按钮,首页上一页下一页尾页,在分页的四个按钮中都加入CommandName属性,为后台cs文件的ItemCommand事件传递字符。--%>
<asp:LinkButton ID="LinkButton1" class="linkbutton" runat="server" CommandName="first">首页</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" class="linkbutton" runat="server" CommandName="pre">上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" class="linkbutton" runat="server" CommandName="next">下一页</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" class="linkbutton" runat="server" CommandName="last">尾页</asp:LinkButton>
</FooterTemplate>
</asp:DataList>
public partial class Default3 : System.Web.UI.Page
{
PagedDataSource pds = new PagedDataSource();//实例化分页类。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bangding(0);
}
}
//下面是自定义函数bangding()
private void bangding(int currentpage)
{
pds.AllowPaging = true;
pds.PageSize = 5;
pds.CurrentPageIndex = currentpage;
string str = "Data Source=CHUNCHUN;Database=tb_newss;User ID=sa;Password=123321";
SqlConnection mon = new SqlConnection(str);
mon.Open();
string oo = "select * from Table_1 ";
SqlDataAdapter da = new SqlDataAdapter(oo, mon);
DataSet ds = new DataSet();
da.Fill(ds);
pds.DataSource = ds.Tables[0].DefaultView;
DataList2.DataSource = pds;
DataList2.DataBind();
mon.Close();
}
//下面是分页按钮的ItemCommand事件。
protected void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
{
switch (e.CommandName)
{
case"first":
pds.CurrentPageIndex = 0;
bangding(pds.CurrentPageIndex);
break;
case "pre":
pds.CurrentPageIndex = pds.CurrentPageIndex-1;
bangding(pds.CurrentPageIndex);
break;
case "next":
pds.CurrentPageIndex = pds.CurrentPageIndex+1;
bangding(pds.CurrentPageIndex);
break;
case "last":
pds.CurrentPageIndex = pds.PageCount-1;
bangding(pds.CurrentPageIndex);
break;
}
}
}
public int CurrentPageIndex
{
get{ return (int)(ViewState["pIndex"]??0); }
set{ ViewState["pIndex"]=value; }
}
你应该用这个 CurrentPageIndex 属性来记录当前的页号。在你的 private void bangding(int currentpage) 写一行
CuttrentPageIndex = currentPage;
而 pds.CurrentPageIndex = pds.CurrentPageIndex+1;
bangding(pds.CurrentPageIndex);
这种语句应该改为 bangding(CurrentPageIndex + 1);
[/quote]
虽然还是不太懂您说的这些,不过我想,我现在遇到的一个问题应该就是您说的这个回传值的问题。我在前台加了一个Label,为了获取每次点击分页按钮时pds.CurrenPageInex的值,但是情况很糟糕,显示的值很错乱,一会儿为“1”,一会儿就是别的数字了。。。。public int CurrentPageIndex
{
get{ return (int)(ViewState["pIndex"]??0); }
set{ ViewState["pIndex"]=value; }
}
你应该用这个 CurrentPageIndex 属性来记录当前的页号。在你的 private void bangding(int currentpage) 写一行
CuttrentPageIndex = currentPage;
而 pds.CurrentPageIndex = pds.CurrentPageIndex+1;
bangding(pds.CurrentPageIndex);
这种语句应该改为 bangding(CurrentPageIndex + 1);