DataGrid分页,每页都是同样的数据,怎么回事?

wxm813 2003-09-29 09:58:02
找不到出错在那里,而且总共的数据绝对不止一个pagesize
谢谢~
...全文
67 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxm813 2003-10-13
  • 打赏
  • 举报
回复
谢谢大家!
wxm813 2003-10-10
  • 打赏
  • 举报
回复
存储过程到没什么问题。
看来是存储过程做数据源不能这样分页
xingxinglzg 2003-10-08
  • 打赏
  • 举报
回复
private void DataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid.CurrentPageIndex = e.NewPageIndex;
setDataViewDataGrid();
pagetext(ViewState["strDataCount"].ToString(),e.NewPageIndex,DataGrid.PageCount);
}
wxm813 2003-10-08
  • 打赏
  • 举报
回复
帮帮忙咯!~
wxm813 2003-10-08
  • 打赏
  • 举报
回复
谢谢 Namo(白色过滤嘴)
我用的存储过程做数据源,我改成了DataAdapter还是不行
我用了AllowCustomPaging=True,“下一页”的按钮没有作用
晕啊!~
stonec 2003-10-08
  • 打赏
  • 举报
回复
你没写全吧!我按照你的代码试了(用DataAdapter填充DataSet,没有用存储过程),可以分页。看看你的存储过程的有没问题吧。
Namo 2003-10-07
  • 打赏
  • 举报
回复
to: wxm813(没有)
是不是用了DataReader?用DataReader不能直接设置分页。具体的可以参考:
http://expert.csdn.net/Expert/topic/2248/2248209.xml?temp=.5531122

如果你用DataAdapter来填充DataSet的话,分页就方便得多了。

昨天刚感慨完。.NET虽然很多地方很方便,但方便了就没效率;要效率就不能方便……

不过昨天我测试过,即使用DataAdapter对速度也没什么太大影响。我30万条的SQL数据记录第一次Search很慢,第二次就ok了。
Nicholasqpl 2003-10-06
  • 打赏
  • 举报
回复
to:wxm813(没有)
你这个分也功能不全,我给你一个分也功能全的代码,你接住:
if(IsPostBack==false)
{
if(DataGrid_CurrentPageIndex!=0)
{
DataGrid_CurrentPageIndex=0;
}
kk();
ShowStats();
}
private void PageIndexChange_Click(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
BTN_GJfind();
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
DataGrid_CurrentPageIndex=this.DataGrid1.CurrentPageIndex;
Response.Write(e.NewPageIndex);
this.DataGrid1.DataBind();
ShowStats();
}
void kk()
{
ds1=User_u.get_ds();
dt1=ds1.Tables["Userinfo"];
dt1.Columns.Add("rolename");
dt1.Columns.Add("department_Name");
foreach(DataRow dr1 in dt1.Rows)
{
User_u.select_role(Convert.ToInt32(dr1["power_id"]));
dr1["rolename"]=User_u.get_role;
}
foreach(DataRow dr2 in dt1.Rows)
{
User_u.select_department_NAME(Convert.ToInt32(dr2["department_id"]));
dr2["department_Name"]=User_u.get_department_NAME;
}

this.DataGrid1.CurrentPageIndex=DataGrid_CurrentPageIndex;
this.DataGrid1.DataSource=dt1;
this.DataGrid1.DataBind();
DataRow DR=dt1.Rows[0];
this.txtname.Text=DR["username"].ToString();
this.txt_department_id.Text=DR["department_id"].ToString();
this.txt_power_id.Text=DR["power_id"].ToString();
this.txtpwd.Text=DR["password"].ToString();
this.txt.Text=DR["rolename"].ToString();
equalsPersonNo=dt1.Rows.Count;
this.DropDownList_role.SelectedIndex=0;
this.DropDownList_department_name.SelectedIndex=0;
if(this.DropDownList_department_name.SelectedIndex!=0)
{
BTN_GJfind();
}
}
private void BTN_GJfind()
{
int Dpt_ID=-1;
int GJpower_ID=-1;
Dpt_ID=Convert.ToInt32(Session["DPT_id"].ToString());
GJpower_ID=Convert.ToInt32(Session["GJPOWER_id"].ToString());
if(Dpt_ID==-1&&GJpower_ID==-1)
{
kk();
return;
}
if(GJpower_ID==-1)
{
User_u.get_dpt_id=Dpt_ID;
dsGJfind=User_u.get_GJfind1();
dtGJfind=dsGJfind.Tables["userinfo_GJ"];

dtGJfind.Columns.Add("rolename");
dtGJfind.Columns.Add("department_Name");
foreach(DataRow dr1 in dtGJfind.Rows)
{
User_u.select_role(Convert.ToInt32(dr1["power_id"]));
dr1["rolename"]=User_u.get_role;
}
foreach(DataRow dr2 in dtGJfind.Rows)
{
User_u.select_department_NAME(Convert.ToInt32(dr2["department_id"]));
dr2["department_Name"]=User_u.get_department_NAME;
}
this.DataGrid1.CurrentPageIndex=DataGrid_CurrentPageIndex;
this.DataGrid1.DataSource=dtGJfind;
this.DataGrid1.DataBind();
int count3=dtGJfind.Rows.Count;
if(count3<=1)
{
this.LinkButton1.Enabled=false;
}
else
{
this.LinkButton1.Enabled=true;
}
equalsPersonNo=dtGJfind.Rows.Count;
try
{
DataRow DR=dtGJfind.Rows[0];
this.txtname.Text=DR["username"].ToString();
this.txt_department_id.Text=DR["department_id"].ToString();
this.txt_power_id.Text=DR["power_id"].ToString();
this.txtpwd.Text=DR["password"].ToString();
this.txt.Text=DR["rolename"].ToString();
}
catch(Exception X)
{
Response.Write ("<script>window.alert('暂时无记录!!')</script>");
this.txtname.Text="";
this.txt_department_id.Text="";
this.txt_power_id.Text="";
this.txtpwd.Text="";
this.txt.Text="";
this.txt_findname.Text="";
}
}
else
{
aa=0;
dsGJfind2=User_u.get_GJfind2(Dpt_ID,GJpower_ID);
dtGJfind2=dsGJfind2.Tables["userinfo_GJ2"];
dtGJfind2.Columns.Add("rolename");
dtGJfind2.Columns.Add("department_Name");
foreach(DataRow dr1 in dtGJfind2.Rows)
{
User_u.select_role(Convert.ToInt32(dr1["power_id"]));
dr1["rolename"]=User_u.get_role;
}
foreach(DataRow dr2 in dtGJfind2.Rows)
{
User_u.select_department_NAME(Convert.ToInt32(dr2["department_id"]));
dr2["department_Name"]=User_u.get_department_NAME;
}
this.DataGrid1.CurrentPageIndex=DataGrid_CurrentPageIndex;
this.DataGrid1.DataSource=dtGJfind2;
this.DataGrid1.DataBind();
equalsPersonNo=dtGJfind2.Rows.Count;
int count4=dtGJfind2.Rows.Count;
if(count4<=1)
{
this.LinkButton1.Enabled=false;
}
else
{
this.LinkButton1.Enabled=true;
}
try
{
DataRow DR=dtGJfind2.Rows[0];
this.txtname.Text=DR["username"].ToString();
this.txt_department_id.Text=DR["department_id"].ToString();
this.txt_power_id.Text=DR["power_id"].ToString();
this.txtpwd.Text=DR["password"].ToString();
this.txt.Text=DR["rolename"].ToString();
}
catch(Exception X)
{
Response.Write ("<script>window.alert('暂时无记录!!')</script>");
this.txtname.Text="";
this.txt_department_id.Text="";
this.txt_power_id.Text="";
this.txtpwd.Text="";
this.txt.Text="";
this.txt_findname.Text="";
}
}
}public void ShowStats()
{
this.lblCurrentIndex.Text = "第 " + (this.DataGrid1.CurrentPageIndex + 1).ToString() + " 页";
this.lblPageCount.Text = "总共 " + this.DataGrid1.PageCount.ToString() + " 页";
}

private void btnFirst_Click(object sender, System.EventArgs e)
{
DataGrid_CurrentPageIndex=0;
this.DataGrid1.CurrentPageIndex =DataGrid_CurrentPageIndex;
BTN_GJfind();
ShowStats();
}

private void btnPrev_Click(object sender, System.EventArgs e)
{
if(this.DataGrid1.CurrentPageIndex > 0)
{
DataGrid_CurrentPageIndex-=1;
this.DataGrid1.CurrentPageIndex =DataGrid_CurrentPageIndex;
}
BTN_GJfind();
ShowStats();
}

private void btnNext_Click(object sender, System.EventArgs e)
{
if(this.DataGrid1.CurrentPageIndex < (this.DataGrid1.PageCount - 1))
{
DataGrid_CurrentPageIndex+=1;
this.DataGrid1.CurrentPageIndex = DataGrid_CurrentPageIndex;
}
BTN_GJfind();
ShowStats();
}

private void btnLast_Click(object sender, System.EventArgs e)
{
DataGrid_CurrentPageIndex=this.DataGrid1.PageCount - 1;
this.DataGrid1.CurrentPageIndex=DataGrid_CurrentPageIndex;
BTN_GJfind();
ShowStats();
}
}
}
网_风 2003-10-06
  • 打赏
  • 举报
回复
都给你:
<asp:DataGrid id="list1" runat="server" AllowPaging="True" PageSize="30"
OnPageIndexChanged="mypagechange">
<PagerStyle Font-Size="9pt" HorizontalAlign="Right" Position="TopAndBottom" BackColor="#F2FFF4" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>


private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
string type=Request.QueryString["type"];
if(type==null | type=="")
type="1";
ViewState["ctp"]=type;
databind();
}
}

void databind()
{
Db list=new Db();
string sql="select * from News where News_Type="+ViewState["ctp"].ToString()+" order by News_Time Desc";
list1.DataSource=list.GetGrid(sql,"mstb");
list1.DataBind();
}
public void mypagechange(object sender,DataGridPageChangedEventArgs e)
{
list1.CurrentPageIndex = e.NewPageIndex;
databind();
}
wxm813 2003-10-06
  • 打赏
  • 举报
回复
自己顶
wxm813 2003-10-06
  • 打赏
  • 举报
回复
加了也没用
竹君子 2003-10-06
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
中加(!IsPostBack)
wxm813 2003-10-06
  • 打赏
  • 举报
回复
我的数据源是来自于存储过程
wxm813 2003-10-06
  • 打赏
  • 举报
回复
国庆耍完了,还得解决继续解决这个问题~
我的AllowPaging 设置为真并且选定的数据源不实现 ICollection,所以AllowCustomPaging 也设置为真,而且DataGrid 必须设置 VirtualItemCount。
分页事件这样写的:
MyList.CurrentPageIndex = e.NewPageIndex;
startIndex = MyList.CurrentPageIndex * MyList.PageSize;
BindGrid();

还是不能实现分页
晕到~
wxm813 2003-09-29
  • 打赏
  • 举报
回复
<script runat="server">

int startIndex;

void Page_Load(Object sender, EventArgs e) {

String customerID = User.Identity.Name;
if (customerID !="" ) {

BindGrid();

if (MyList.Items.Count == 0) {
MyError.Text = "没有你的定单.";
MyList.Visible = false;
}
}else{
Response.Redirect("Login_.aspx");
}

MyList.PagerStyle.Visible= true;
startIndex=0;
MyList.VirtualItemCount=MyList.PageCount;

}


void MyList_Page(Object sender, DataGridPageChangedEventArgs e){

startIndex = e.NewPageIndex * MyList.PageSize;
MyList.CurrentPageIndex = e.NewPageIndex;
BindGrid();
}

void BindGrid()
{
String customerID = User.Identity.Name;
IBuySpy.CoOrdersDB orderHistory = new IBuySpy.CoOrdersDB();
MyList.DataSource =orderHistory.GetCustomerOrders(customerID);
MyList.DataBind();
}

-----
<asp:DataGrid id="MyList" AllowPaging="True" AllowCustomPaging ="True" PageSize="15" PagerStyle_Mode="NumericPages"
PagerStyle-HorizontalAlign="Right" OnPageIndexChanged="MyList_Page" BorderColor="black" BorderWidth="1" GridLines="Both" cellpadding="4" cellspacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd" AlternatingItemStyle-BackColor="#eeeeee" AutoGenerateColumns="false" PagerStyle-Mode="NumericPages" Width="90%" runat="server">
<Columns>
...
mzbyxz 2003-09-29
  • 打赏
  • 举报
回复
allowpages=true
在dataGrid的PageIndexChanged的事件中加入如下代码
dataGrid.CurrentPageIndex =e.NewPageIndex ;
\\重新绑定dataGrid

每次翻页后都要重新绑定数据
wxm813 2003-09-29
  • 打赏
  • 举报
回复
属性都写全了!~
pp4u 2003-09-29
  • 打赏
  • 举报
回复
贴出代码来。
inethax 2003-09-29
  • 打赏
  • 举报
回复
你要处理分页事件的。如下:
private void dgUserInfo_PageIndexChanged(object source,
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgUserInfo.CurrentPageIndex =e.NewPageIndex ;
dgUserInfo.DataBind();
}
网_风 2003-09-29
  • 打赏
  • 举报
回复
allowpages=true
加载更多回复(4)

62,041

社区成员

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

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

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

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