1真分页的SQL
在上几篇博客中讲的GridView的分页是一种假的分页。这种分页就是把数据库所有的内容查出来,在一页中显示几个,然后在自动给排几页。如果数据量大的时候,这种分页显示的不行的。 真分页应该是根据一页分几条数据,从数据库中查几条。我只会写查几条的SQL语句。有人说根据id不就可以了吗?因为数据有增删,所以id并不连续,不可根据id来查。
我这儿只是简单举个例子。
with temptbl as(
select ROW_NUMBER () over (order by id asc )as 行号, * from news)
select * from temptbl where 行号 between 4 and 7
2判断session
为何要判断session?因为网页不是客户端,它有多个入口,只要输入相关的网址就可以不用登录就到主页。比如:网址为:http://localhost/login.aspx,这样才对。但是在地址栏改为http://localhost/main.aspx,或者是对应的其他网页就可以不登录就访问你的 网址了。这就相当于你给你的家建立了一个大门,但是别人非要从你的窗户来你家,也未尝不可。这时你就该告诉他们走窗户不行,必须从门进来。
在登录页面:Session["admin"] = name; //把用户名用session存起来
在其他页面:(简单点,我的用户名是写的固定的“ccc”)
// 判读session里面是否存在管理员
if (Session["admin"] != null && Session["admin"].ToString() == "ccc")
{
//已经登录
}
}
else
{
//未登录,重定向到登录页。
Response.Redirect("login.aspx");
}
3.NET中内置的ajax控件
阿贾克斯技术,是一种局部刷新的技术。主要效果就是页面不闪烁,不刷新,而是局部进行刷新,在web中应用非常广泛。
主要用到的就是上面这两个控件。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager> //先放一个ScriptManager控件
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> //再在下面放一个UpdatePanel控件
<ContentTemplate> //项模版,在里面放要局部刷新的控件,我放了一个table
<table class="m_table">
<tr>
<th class="xuhao">
序号
</th>
<th>
标题
</th>
<th class="mod">
修改
</th>
<th class="del">
删除
</th>
</tr>
<asp:Repeater ID="repNews" runat="server">
<ItemTemplate>
<tr>
<td>
<%# Eval("id") %>
</td>
<td><a href='../content.aspx?newsid=<%# Eval("id") %>' target="_blank" >
<%# Eval("title") %>
</a>
</td>
<td id="mod">
<a href="modefy.aspx?newsid='<%# Eval("id") %>'">修改</a>
</td>
<td>
<asp:LinkButton ID="lbtnDel" OnClientClick="return confirm('删除新闻会连同其下的新闻评论一起删除,是否继续')" OnClick="lbtnDel_Click" CommandArgument=' <%# Eval("id") %>' runat="server">删除</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</ContentTemplate>
</asp:UpdatePanel>
4出错页
web.config设置
<configuration>
<!--数据库连接字符串 -->
<connectionStrings>
<add name="connStr" connectionString="server=.;database=newssystem;uid=sa;pwd=123456;"/> //连接你的数据库
</connectionStrings>
<system.web>
<!--出现错误的时候,自动导向-->
<customErrors mode="On" defaultRedirect="~/error.htm"/> //每次页面崩溃时,不会暴露原码,而是转到错误页面。~代表根目录
错误页的倒计时脚本
<script language="javascript" type="text/javascript">
var i = 5;
var intervalid;
intervalid= setInterval("fun()", 1000); //1000毫秒为1s
function fun() {
if (i == 0) {
window.location.href = "Defeault.aspx";
clearInterval(intervalid);
}
document.getElementById("mes").innerHTML = i;
i--;
}
</script>
以上是一段JavaScript的脚本,我就不解释了,因为我也看不懂,用来倒计时。这个功能非常常见,比如说,考试系统学生交卷后,5s自动跳到首页。