网站建设小技巧,随时更新

一:当需要页面刷新以后,使滚动条保持在原来的位置,除了用ajax技术外,一个小技巧可以

  在页面(*.aspx)的头部,有个参数MaintainScrollPositionOnPostback设置MaintainScrollPositionOnPostback="true"即可;

二:当点击一个地方,然后跳到页面上下的任意一个位置时,可以用“锚记”,具体方法:

页面头部有“我要评论”(代码是:<a href="#youname">我要评论</a>)然后跳到写评论的区域(代码:<a name="youname">&nbsp;</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">&nbsp</a> <img id="imgCode" title="看不清,点击换一张" alt="看不清,请点击我!" src="Code.aspx" mce_src="Code.aspx"    
                  style="cursor: hand; width: 76px; height: 21px" οnclick="this.src=this.src+'?'"  /></p>
        <p><asp:Button ValidationGroup="Codeare"  ID="btnsub" runat="server" Text="提交评论" οnclick="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();

 

 

 

 

 

转载于:https://www.cnblogs.com/juexin/archive/2013/01/17/2864476.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值