首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

小弟我的DataList分页有什么有关问题

2012-01-14 
我的DataList分页有什么问题?我把部分代码贴出来:页面代码:asp:datalistidDataList1runat server Dat

我的DataList分页有什么问题?
我把部分代码贴出来:
页面代码:
<asp:datalist   id=DataList1   runat= "server "   DataMember= "Message "   DataSource= " <%#   dataSet21   %> "   ShowFooter= "False "   DataKeyField= "M_ID "   RepeatDirection= "Horizontal "   RepeatColumns= "1 "   Width= "800px "   Height= "96px "   CellPadding= "0 ">
<HeaderTemplate>
<FONT   face= "宋体 "> 留言列表 </FONT>
</HeaderTemplate>
<EditItemStyle   Font-Size= "9pt "> </EditItemStyle>
<ItemStyle   Font-Size= "9px "> </ItemStyle>
<ItemTemplate>
<TABLE   cellSpacing= "1 "   cellPadding= "0 "   bgcolor= "#00ccff "   width= "800 "   align= "center "   border= "0 ">
<TR>
      <td   width= "100px "   bgcolor= "#FFFFFF "> <%#   DataBinder.Eval(Container,   "DataItem.M_GuestName ")   %> 的留言 </td>
<TD   bgcolor= "#FFFFFF "> <%#   DataBinder.Eval(Container,   "DataItem.M_Title ")   %> </TD>
<TD   bgcolor= "#FFFFFF "   align= "right ">
<asp:ImageButton   id=ibtnDelete   runat= "server "   Visible= ' <%#   bool.Parse(Session[ "flag "].ToString())%> '   ImageUrl= "img/delete.gif "   AlternateText= "删除 "   CommandName= "delete ">
</asp:ImageButton>
<asp:ImageButton   id=ibtnReply   runat= "server "   Visible= ' <%#   bool.Parse(Session[ "flag "].ToString())%> '   ImageUrl= "img/reply.gif "   AlternateText= "回复 "   CommandName= "edit ">
</asp:ImageButton> <%#   DataBinder.Eval(Container,   "DataItem.M_CreateTime ", "{0:d} ")   %> </TD>
</TR>
<TR>
<td   bgcolor= "#FFFFFF "> </td>
<TD   bgcolor= "#FFFFFF "   colSpan= "2 "> <%#   DataBinder.Eval(Container,   "DataItem.M_Content ")   %> <FONT   face= "宋体 "> </FONT> <BR>
</TD>
</TR>
<TR>
<td   width= "100px "   bgcolor= "#FFFFFF "> 站长回复: </td>
<TD   bgcolor= "#FFFFFF "   colSpan= "2 ">
<%#   DataBinder.Eval(Container,   "DataItem.M_AdminReply ")   %>
<FONT   face= "宋体 "> </FONT>
</TD>
</TR>
<TR>
<TD   bgcolor= "#FFFFFF "   colSpan= "3 ">
</TD>
</TR>
</TABLE>
</ItemTemplate>
<EditItemTemplate>
<FONT   face= "宋体 ">
<%#   DataBinder.Eval(Container,   "DataItem.M_Content ")   %>
<BR>
<BR>
<asp:TextBox   id= "txtReply "   runat= "server "   TextMode= "MultiLine "   Columns= "20 "   Rows= "2 "> </asp:TextBox> <BR>
<asp:Button   id= "btnReply "   runat= "server "   Text= "回复 "   CommandName= "update "> </asp:Button> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


<asp:Button   id= "btnNo "   runat= "server "   Text= "取消 "   CommandName= "cancel "> </asp:Button> </FONT> <br>
</EditItemTemplate>
</asp:datalist>

codebehind:
private   void   Bind()
{
this.sqlDataAdapter1.Fill(dataSet21, "message ");
PagedDataSource   pager   =   new   PagedDataSource();
pager.DataSource=this.dataSet21.Tables[ "message "].DefaultView;
pager.AllowPaging=true;
int   curPage   =   int.Parse(lblcurPage.Text);
pager.PageSize=2;
//CurrentPageIndex的值是从0开始的
pager.CurrentPageIndex=curPage-1;
int   totalpage   =   pager.PageCount;
if(curPage==1)
{
lbtnLast.Enabled=false;
lbtnNext.Enabled=true;
}
if(curPage==pager.PageCount)
{
lbtnLast.Enabled=true;
lbtnNext.Enabled=false;
}
this.DataList1.DataSource=dataSet21.Tables[ "message "];
this.DataList1.DataBind();
}

//“上一页”按钮事件
private   void   lbtnLast_Click(object   sender,   System.EventArgs   e)
{
this.lblcurPage.Text=Convert.ToString((int.Parse(lblcurPage.Text)-1));
Bind();
}

//“下一页”按钮事件
private   void   lbtnNext_Click(object   sender,   System.EventArgs   e)
{
this.lblcurPage.Text=Convert.ToString((int.Parse(lblcurPage.Text)+1));
Bind();
}

现在的问题就是:数据库中有四行数据,我分为2页,当前是第一页,我点下一页,内容没变(始终是把数据库中四行数据都显示出来了)。

[解决办法]
分页不要这样分,一般数据量大了,很可能降低效率,给你一个好的方法。
在SQL中分页,每页只SELECT出需要那几条数据,你去Google搜索一下“分页SQL”,具体SQL的写法我就不一一列出了,祝你好运
[解决办法]
this.DataList1.DataSource=dataSet21.Tables[ "message "];
this.DataList1.DataBind()
-------------------------
你绑定应该绑定pager.DataSource吧!;绑定dataSet21.Tables[ "message "];不是全都绑出来了嘛。
[解决办法]
this.DataList1.DataSource=dataSet21.Tables[ "message "];

我寒死,你那个pager设了半天,没用上啊。笨

热点排行