现在手头在做一个项目,是个网站,我现在做的是Login和Query这2个模块,就是登陆和查询功能现在碰到2个问题:1.Login模块中对网页访问权限的控制现在的我的想法是登陆的时候,一旦验证成功,那么将用户名USERNAME存到SESSION中,然后以后每次跳转到先检验这个SESSION是否为空,如果为空,那么返回登录页面,如果不为空,则正常显示网页
对于这个问题,个人觉得现在的方法不是很好,我想问各位还有没有其他的方法2.Query模块中Gridview的分页问题现在我用的是Sqlsource控件设置为Gridview的数据源,但是此时需要根据页面上不同的条件查询出结果并显示给用户,每次改变条件的时候就把Sqlsource的selectcommand属性重新设置
现在我把Gridview设置了分页,第一页显示是正常,第二页之后就无法显示,是因为页面刷新后数据源没有重新绑定,于是在GridView1_OnPageIndexChanged的方法中进行了绑定,解决了分页显示问题,但是这个时候,每次点页码的时候数据都会重新进行查询,然后绑定,个人觉得效率很低,想问各位还有什么好的方法?PS:本人学.NET不久 请各位回答的大大 多写几个字 不要直接粘一句代码就完了
不然肯定会有N多人留这样的言问题1:SESSION["USERNAME"]=username
问题2: GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();这些我都知道,只是在使用的时候觉得不好用,想讨教一下还有什么好的方法
对于这个问题,个人觉得现在的方法不是很好,我想问各位还有没有其他的方法2.Query模块中Gridview的分页问题现在我用的是Sqlsource控件设置为Gridview的数据源,但是此时需要根据页面上不同的条件查询出结果并显示给用户,每次改变条件的时候就把Sqlsource的selectcommand属性重新设置
现在我把Gridview设置了分页,第一页显示是正常,第二页之后就无法显示,是因为页面刷新后数据源没有重新绑定,于是在GridView1_OnPageIndexChanged的方法中进行了绑定,解决了分页显示问题,但是这个时候,每次点页码的时候数据都会重新进行查询,然后绑定,个人觉得效率很低,想问各位还有什么好的方法?PS:本人学.NET不久 请各位回答的大大 多写几个字 不要直接粘一句代码就完了
不然肯定会有N多人留这样的言问题1:SESSION["USERNAME"]=username
问题2: GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();这些我都知道,只是在使用的时候觉得不好用,想讨教一下还有什么好的方法
分页控件网上一大堆
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Response.Expires = 0;
// 判断是否已经登录 或者 Session 超时
if (Session["islogin"] == null || Session["islogin"].ToString() == "")
{//没有登录
Response.Write("<script>window.parent.location.href='../WebDefult/NotLogin.aspx';</script>");
}
}
是直接把这个方法写成一个静态的全局方法
还是写一个母板页也就是Master页
以后的页面都用来继承这个页面这2种处理方法那个比较好?
2.使用数据库分布,每次只读出显示页面的数据。
第2点支持10L,每次只读取需要的数据,另外个人感觉最好不要用MS的东西,直接生成HTML是好的,因为不管后台怎么弄,最终到页面都是HTML。
具体实现一般先使用数据库的row_number()函数排序然后选取需要的数据。MS SQL从2005开始及以后的返本都支持此函数
如果是这样的话
在数据库中查询出的结果集岂不是要先查出全部 然后进行排序 然后根据ROW_NUMBER来选取显示
这样的话效率方面会有影响吗?
还有ORACLE支持这么做吗?
public class BasePage : System.Web.UI.Page
{
public BasePage()
{
}
protected override void OnInit(EventArgs O)
{
if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))
{
Response.Redirect("~/Error.aspx");
}
}
}
使用分页存储过程
如16楼所说,“分页本来就是考虑到每次读取数据才采取的一种方式”。为什么要分页?就是因为数据量太大。页面显示还是小问题,资源占用才是重点。在数据量小的时候不觉得,数据量大了问题就来了。假设一个百万级的数据库,如果有个查询要求把数据全部(即使只要求50%)显示出来,不考虑显示问题。假设一条数据2k,把这些数据全部读到内存要有多大的内存才行?又要什么级别的CPU才能处理这些数据,再加上并发请求