关于ASP.NET Datalist分页问题求救

qpf04140133 2011-08-28 07:47:01
。cs 文件代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class controls_ProductsList_cnl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bindlist();
}
}
public void Bindlist()
{
//string connectionstring = ConfigurationSettings.AppSettings["connectionstring"];

string AccessString = System.Configuration.ConfigurationManager.AppSettings["AccessString"].ToString();

string DataBase = System.Configuration.ConfigurationManager.AppSettings["DataBase"].ToString();

OleDbConnection myconnection = new OleDbConnection(AccessString + System.Web.HttpContext.Current.Server.MapPath(DataBase));
// SqlConnection sqlcon = new SqlConnection(connectionstring);
// sqlcon.Open();
myconnection.Open();


int curpage = Convert.ToInt32(labPage.Text);
PagedDataSource ps = new PagedDataSource();
//string sqlstr = "SELECT TOP 4 * FROM ST_news WHERE Class = '基地新闻'";
string sqlstr = "SELECT * FROM product_cn order by id desc ";
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(sqlstr, myconnection);
//SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);


DataSet ds = new DataSet();
MyAdapter.Fill(ds, "ProductName");
ps.DataSource = ds.Tables["ProductName"].DefaultView;
ps.AllowPaging = true; //是否可以分页
ps.PageSize = 10; //显示的数量
ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
lnkbtnUp.Enabled = true;
lnkbtnNext.Enabled = true;
lnkbtnBack.Enabled = true;
lnkbtnOne.Enabled = true;
if (curpage == 1)
{
lnkbtnOne.Enabled = false;//不显示第一页按钮
lnkbtnUp.Enabled = false;//不显示上一页按钮
}
if (curpage == ps.PageCount)
{
lnkbtnNext.Enabled = false;//不显示下一页
lnkbtnBack.Enabled = false;//不显示最后一页
}
labBackPage.Text = Convert.ToString(ps.PageCount);
this.Datalist1.DataSource = ps;
this.Datalist1.DataKeyField = "id";
this.DataList1.DataBind();
myconnection.Close();
}
protected void lnkbtnOne_Click(object sender, EventArgs e)
{
labPage.Text = "1";
Bindlist();
}
protected void lnkbtnUp_Click(object sender, EventArgs e)
{
labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) - 1);
Bindlist();
}
protected void lnkbtnNext_Click(object sender, EventArgs e)
{
labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
Bindlist();
}
protected void lnkbtnBack_Click(object sender, EventArgs e)
{
labPage.Text = labBackPage.Text;
Bindlist();
}
}

。aspx页面代码
<asp:DataList ID="Datalist1" runat="server" BackColor="White" Height="1px" RepeatColumns="2"
Width="590px" Font-Names="Verdana" Font-Size="10pt">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" style="width: 215px; height: 1px;
margin-top: 0px; padding-top: 0px; font-size: 10pt;">
<tr>
<td align="center" style="height: 139px">
<table id="Table_01" border="0" cellpadding="0" cellspacing="0" height="116" width="171">
<tr>
<td colspan="3">
</td>
</tr>
<tr>
<td>
</td>
<td height="100" width="153">
<a href='<%#"ProductdShow_cn.aspx?path=style_show&id="+DataBinder.Eval(Container.DataItem,"id")%>'
target="_blank">
<asp:Image ID="Image1" runat="server" Height="100" ImageUrl='<%#"../"+ DataBinder.Eval(Container.DataItem,"pic") %>'
Width="153" />
</a>
</td>
<td>
</td>
</tr>
<tr>
<td colspan="3">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center" style="height: 18px">
<%# DataBinder.Eval(Container.DataItem,"title") %>
</td>
</tr>
</table>
</ItemTemplate>
<HeaderStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
Font-Underline="False" ForeColor="Blue" HorizontalAlign="Center" />
</asp:DataList>
<table cellpadding="0" cellspacing="0" style="width: 590px;">
<tr>
<td style="font-size: 9pt; width: 100%; height: 16px; text-align: center">
<asp:Label ID="Label7" runat="server" Text="当前页:"></asp:Label>[
<asp:Label ID="labPage" runat="server" Text="1"></asp:Label>]
<asp:Label ID="Label6" runat="server" Text="页数:"></asp:Label>[
<asp:Label ID="labBackPage" runat="server" Text="1"></asp:Label>]<asp:LinkButton
ID="lnkbtnOne" runat="server" Font-Underline="False" ForeColor="Red" OnClick="lnkbtnOne_Click">首页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnUp" runat="server" Font-Underline="False" ForeColor="Red"
OnClick="lnkbtnUp_Click">上一页</asp:LinkButton><asp:LinkButton ID="lnkbtnNext" runat="server"
Font-Underline="False" ForeColor="Red" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton> 
<asp:LinkButton ID="lnkbtnBack" runat="server" Font-Underline="False" ForeColor="Red"
OnClick="lnkbtnBack_Click">尾页</asp:LinkButton>
 </td>
</tr>
</table>

错误提示:

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0117: “controls_ProductsList_cnl”并不包含“DataList1”的定义

源错误:



行 65: this.Datalist1.DataSource = ps;
行 66: this.Datalist1.DataKeyField = "id";
行 67: this.DataList1.DataBind();
行 68: myconnection.Close();
行 69: }


源文件: e:\web sites\DoorHand\controls\ProductsList_cn.ascx.cs 行: 67




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-08-29
  • 打赏
  • 举报
回复
PagedDataSource
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
void bind()
{
int curpage = Convert.ToInt32(this.Label1.Text);
PagedDataSource ps = new PagedDataSource();
pagebind(ps);
ps.AllowPaging = true;
ps.PageSize = 5;
ps.CurrentPageIndex = curpage -1;
this.LinkButton1.Enabled = true;
this.LinkButton2.Enabled = true;
this.LinkButton3.Enabled = true;
this.LinkButton4.Enabled = true;
if (curpage == 1)
{
this.LinkButton1.Enabled = false;
this.LinkButton2.Enabled = false;
}
if (curpage == ps.PageCount)
{
this.LinkButton3.Enabled = false;
this.LinkButton4.Enabled = false;
}
this.Label2.Text = ps.PageCount.ToString();
this.DataList1.DataSource = ps;
this.DataList1.DataBind();


}
void pagebind(PagedDataSource pd)
{
string strcon="server=.;database=pubs;uid=sa;pwd=sa";
SqlConnection cn = new SqlConnection(strcon);
SqlDataAdapter da = new SqlDataAdapter("select title_id,title,price from titles", cn);
DataSet ds = new DataSet();
da.Fill(ds, "titles");
pd.DataSource = ds.Tables["titles"].DefaultView;
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
this.Label1.Text = "1";
bind();
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
this.Label1.Text = (Convert.ToInt32(this.Label1.Text) - 1).ToString();
bind();
}
protected void LinkButton3_Click(object sender, EventArgs e)
{
this.Label1.Text=(Convert.ToInt32(this.Label1.Text)+1).ToString();
bind();
}
protected void LinkButton4_Click(object sender, EventArgs e)
{
this.Label1.Text = Label2.Text;
bind();
}


分页控件
LMAOhuaNL 2011-08-28
  • 打赏
  • 举报
回复
这个跟你这个差不多
你为什么不用ViewState存放分页数据
LMAOhuaNL 2011-08-28
  • 打赏
  • 举报
回复

DataList1.DataSource = objPds; //编写DataList的数据源

DataList1.DataBind(); //绑定数据源

你把66行的那段代码注释掉,看效果

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧