一:当需要页面刷新以后,使滚动条保持在原来的位置,除了用ajax技术外,一个小技巧可以
在页面(*.aspx)的头部,有个参数MaintainScrollPositionOnPostback设置MaintainScrollPositionOnPostback="true"即可;
二:当点击一个地方,然后跳到页面上下的任意一个位置时,可以用“锚记”,具体方法:
页面头部有“我要评论”(代码是:<a href="#youname">我要评论</a>)然后跳到写评论的区域(代码:<a name="youname"> </a>)
即可。
其中name就是一个锚;
三:后置代码中,输出js提示语句,页面部分不会变白的方法:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script>alert('验证码有误!')</script>");
四:.net内置验证控件问题
需要验证控件只验证某一部分,比如新闻评论的验证码问题,需要验证的是,文本输入框,按钮,则只需将这些划到一个验证组(ValidationGroup)就好
<div class="addcomment"> <asp:TextBox ID="txtComment" ValidationGroup="Codeare" CssClass="comment_com" runat="server" TextMode="MultiLine" OnClick="this.select()" Text="请在此输入评论内容"></asp:TextBox> <p class="code">验证码:<asp:TextBox ID="txtCode" ValidationGroup="Codeare" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="Codeare" runat="server" ControlToValidate="txtCode" ErrorMessage="请输入验证码" Text="*"></asp:RequiredFieldValidator><asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="Codeare" ShowMessageBox="true" ShowSummary="false" runat="server" /> <a name="com"> </a> <img id="imgCode" title="看不清,点击换一张" alt="看不清,请点击我!" src="Code.aspx" mce_src="Code.aspx" style="cursor: hand; 76px; height: 21px" onclick="this.src=this.src+'?'" /></p> <p><asp:Button ValidationGroup="Codeare" ID="btnsub" runat="server" Text="提交评论" onclick="btnsub_Click" /></p> </div>
五、三元运算符控制标题长度
<%#Eval("FileName").ToString().Length>20?Eval("FileName").ToString().Substring(0,19)+"…":Eval("FileName")%>
六、JS控制自动滚动
1、首尾相接滚动一条停顿一下
代码:
<script> var Mar = document.getElementById("gundongContent"); var child_div=Mar.getElementsByTagName("div") var picH = 269;//移动高度 var scrollstep=3;//移动步幅,越大越快 var scrolltime=20;//移动频度(毫秒)越大越慢 var stoptime=3000;//间断时间(毫秒) var tmpH = 0; Mar.innerHTML += Mar.innerHTML; function start(){ if(tmpH < picH){ tmpH += scrollstep; if(tmpH > picH )tmpH = picH ; Mar.scrollTop = tmpH; setTimeout(start,scrolltime); }else{ tmpH = 0; Mar.appendChild(child_div[0]); Mar.scrollTop = 0; setTimeout(start,stoptime); } } onload=function(){setTimeout(start,stoptime)}; </script>
用法:建立一个div盒子,设置其ID属性,JS通过此ID找到滚动的内容
如上例<div id="gundongContent">
<div>滚动内容1</div>
<div>滚动内容2</div>
</div>
2、不间断首尾相接滚动
代码:
<script> var speed=30 demo2.innerHTML=demo1.innerHTML function Marquee(){ if(demo2.offsetTop-demo.scrollTop<=0) demo.scrollTop-=demo1.offsetHeight else{ demo.scrollTop++ } } var MyMar=setInterval(Marquee,speed) demo.onmouseover=function() {clearInterval(MyMar)} demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)} </script>
七、触发器--联级删除(删除类别时,同时删除类别下新闻,新闻下评论---顺序是从deleted表中查询出正在删除的类别ID,先删评论,再删新闻,最后删除类 别,完成操作)
alter TRIGGER DEL_cate_news
ON category
instead of DELETE
AS BEGIN
declare @ID int
select @ID = ID from deleted
--删除评论
delete comment where newsId in
(select ID from news where caid=@ID)
--删除新闻
delete news where caid=@ID
--删除类别
delete category where ID=@ID
END
八、存储过程,联级删除(根据新闻ID先删除评论,再删除新闻---目的是删除新闻)
ALTER PROCEDURE [dbo].[news_Delete]
@id int
AS
BEGIN
--先删除评论
delete comment where comment.newsId=@id
--再删除新闻
delete news where news.id=@id
END
九、URL编码解码
// 首先加入System.Web引用。 /// <summary> /// URL解码 /// </summary> /// <param name="source"> 待解码字符串 </param> /// <param name="encode"> 待解码字符串编码格式 </param> /// <returns> 解码后的字符串 </returns> public static string UrlDeCode( string source, Encoding encode) { return System.Web.HttpUtility.UrlDecode(source,encode); } /// <summary> /// URL加密 /// </summary> /// <param name="source"> 待加密字符串 </param> /// <param name="encode"> 待加密字符串编码格式 </param> /// <returns> 加密后的字符串 </returns> public static string UrlEnCode( string source, Encoding encode) { return System.Web.HttpUtility.UrlEncode(source,encode); }
十、尼玛,Server.Transfer传值
A页面
protected void btn1_Click(object sender, EventArgs e) { string str = "尼玛,Server.Transfer传值"; this.Context.Items.Add("Text", str); Server.Transfer("B.aspx"); }
B页面
this.lbl1.Text = this.Context.Items["Text"].ToString();
十一、取出31---40条记录
select * from
(select *,ROW_NUMBER() OVER(Order by id asc ) AS RowNumber from news) b
where RowNumber between 31 and 40
十二、关于ashx创建session的问题
这两天自己学习JQuery和ajax,做个小Demo创建session的时候遇到了困难,网上查询资料时发现很多朋友都遇到了类似的问题,故贴出相关代码,供大家参考。
public class LoginAjax : IHttpHandler,IRequiresSessionState //需要实现 IRequiresSessionState接口 { UserManage um = new UserManage(); public void ProcessRequest(HttpContext context) { Users ur = null; context.Response.ContentType = "text/plain"; ur= um.getLoginfo(context.Request["name"], context.Request["pwd"]); if (ur != null && ur.Status==0) { context.Session["id"] = ur.Uid; //给创建Session,并赋值,读取方法不变 context.Session["name"] = ur.Uname; context.Response.Write("1"); } else { context.Response.Write("0"); } }
十三、将数据库一串按固定字符分割的字符串,转换为一个数组进行操作
string str = "~/uploadfile/201208/17/13292F22.jpg|~/uploadfile/201208/17/80EC3643.jpg|~/uploadfile/201208/17/591957C3.jpg|";
var array = str.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToArray();