PagedDataSource 分页问题

a304580 2017-03-19 02:30:38
这个代码 我从网上找的 可以分页 都可以用 就是有一个问题
点击下一页 和 上一页的时候 参数是隐藏的 网址的地方 看不到 是第几页 比如说

某某点COM/NEW.aspx 是一个新闻列表页面 一共有2页 当我点击第二页的按钮的时候 内容是变成第二页了 但是 网址还是
某某点COM/NEW.aspx 这个 没有变化 如果让他显示出参数?

代码如下
前台
<span class="CurrPage"><div style="padding-right:50px;" align="center">
<asp:Button ID="btnPrev" runat="server" BorderStyle="None"
Height="19px" OnClick="btnPrev_Click" Text="上一页" Width="52px" />
<asp:Button ID="btnNext" runat="server" BorderStyle="None"
Height="19px" OnClick="btnNext_Click" Text="下一页" Width="52px" />
<asp:Label ID="lblCurrentPage" runat="server"></asp:Label>

</div></span>

后台


//首次加载,赋初值
ViewState["Page"] = 0;

try
{
ViewState["typeid"] = Convert.ToInt32(Request.QueryString["typeid"]);
}
catch
{
ViewState["typeid"] = -1;
}
DataBind();



/// <summary>
/// 分页加载
/// </summary>
public void DataBind()
{
PagedDataSource pdsComs = new PagedDataSource();
//赋值
//qjsfwzlb0.DataSource = ToDataTable(BLL.qjsfManager.SelectqjsfBy2());
//qjsfwzlb0.DataBind();
pdsComs.DataSource = BLL.ArticleManager.GetArticles(1); // 1

pdsComs.AllowPaging = true;
pdsComs.PageSize = 10;
pdsComs.CurrentPageIndex = Pager;


lblCurrentPage.Text = "第 " + (pdsComs.CurrentPageIndex + 1).ToString() + " 页 共 " + pdsComs.PageCount.ToString() + " 页";
SetEnable(pdsComs);

fxlists.DataSource = pdsComs;
fxlists.DataBind();
}

/// <summary>
/// 按钮处理
/// </summary>
/// <param name="objPds"></param>
private void SetEnable(PagedDataSource objPds)
{
btnPrev.Enabled = true;
btnNext.Enabled = true;
if (objPds.IsFirstPage)
btnPrev.Enabled = false;

if (objPds.IsLastPage)
btnNext.Enabled = false;
}

/// <summary>
/// 当前页数
/// </summary>
private int Pager
{
get
{
return (int)ViewState["Page"];
}
set
{
ViewState["Page"] = value;
}
}
/// <summary>
/// 上一页下一页事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNext_Click(object sender, EventArgs e)
{
Pager++;
DataBind();
}
protected void btnPrev_Click(object sender, EventArgs e)
{
Pager--;
DataBind();
}

public string Get49Str(string s)
{
if (s.Length > 48) return s.Substring(0, 47) + "...";
return s;
}

/// <summary>
/// 转换
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="varlist"></param>
/// <returns></returns>
public static DataTable ToDataTable<T>(IEnumerable<T> varlist)
{
DataTable dtReturn = new DataTable();

// column names
PropertyInfo[] oProps = null;

if (varlist == null) return dtReturn;

foreach (T rec in varlist)
{
if (oProps == null)
{
oProps = ((Type)rec.GetType()).GetProperties();
foreach (PropertyInfo pi in oProps)
{
Type colType = pi.PropertyType;

if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition()
== typeof(Nullable<>)))
{
colType = colType.GetGenericArguments()[0];
}

dtReturn.Columns.Add(new DataColumn(pi.Name, colType));
}
}

DataRow dr = dtReturn.NewRow();

foreach (PropertyInfo pi in oProps)
{
dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue
(rec, null);
}

dtReturn.Rows.Add(dr);
}
return dtReturn;
}


有大神知道么 改什么地方? 让他把参数显示出来?第一次用 不太清楚。。 谢谢
...全文
152 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那你得用aspnetpager这个控件
a304580 2017-03-19
  • 打赏
  • 举报
回复
感觉就是把参数隐藏起来传递了 我换页以后刷新页面 都会提示 确认重新提交表单XXX。。

62,046

社区成员

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

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

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

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