我这半个月的代码总结(小技巧,小代码)之二
一:ASP。NET AJAX 注册JS方法
如果想在。NET AJAX 下使用自定义JS方法 那么。NET AJAX是不支持普通定义方法的,可以通过注册SCRIPTMANAGER来构造
ScriptManager.RegisterStartupScript 方法
ScriptManager.RegisterStartupScript(this.UpdatePanel4, this.GetType(), "updateScript", "alert('发表成功')", true);
this.UpdatePanel4 是引用或者内部要触发JS的UpdatePanel(也可以是其他对象)
this.GetType() 出发者的类型(这里直接写 this.GetType()就可以)
"updateScript" 随意写个有代表性的JS标识就OK,跟函数名一样
"alert('发表成功')" 函数体(JS)
true 代表 确实要追加显示JS(在页面浏览器观看源代码可以看到)
另外PAGE的RegisterStartupScript 也可以全局添加JS代码
二:
ScriptManager.RegisterScriptBlock 方法类似于上面函数,但是他相当于Attribute方法 只在加入后第二次事件才激发
三:将本页设置为收藏或者某站点加入浏览器收藏的代码(非原创)
四:如果数据库中有这样的字段 结果:2313,3213132,3123123,31231231
你想知道实际上字段内容中 排除所有“,”号后的长度 SQL写法为 Select Len(A)-Len(Replace(A,'i','')) From tableName (这里把i换成“,”就可以了)
五: 用户表内有积分列Digg_Jf 你想对他们的结果进行排名的话请看下面代码
select rowid=identity(int,1,1),User_ID into #aaa from Digg_Users order by Digg_Jf desc select rowid from #aaa where User_ID = 传入的用户名 drop table #aaa
原因:rowid=identity(int,1,1), 代表 初始为1 自动每行增长1点 给rowid 并且追加到aaa(临时表) 然后从这个表搜索结果(自己去试试就知道了)
六:匿名用户在表里 临时记录User_ID为0,还有个记录他IP
要求 如果搜索是匿名用户的话 User_NickName列 结果为 酷体网友(197。223。323。*) ---这里的IP是匿名用户IP最后为是*
下面语句可以解决
select A.User_ID,A.nRemark_Content,A.nRemark_AddTime,A.User_IP,B.Digg_Header,User_NickName=case when A.User_ID=0 then '酷体网友('+reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' else B.User_NickName end from News_Remark A left outer join Digg_Users B on A.User_ID=B.User_ID where A.News_ID='1' and A.nRemark_State=0
解释:User_NickName=case when A.User_ID=0 then '酷体网友('+reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' else B.User_NickName end
的意思是(CASE语句用法): 如果A。User_ID 是0的话 那么User_NickName列返回 酷体网友 +IP(带*) ELSE(否则)正常返回
而我写的reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' 就是先把IP倒过来(reverse)然后(charindex)取倒IP
最后的 点(。)的位置然后用substring 取倒IP,从索引位置一取 取100长度(没那么长也不影响) 然后在把结果倒过来
比如 192.168.1.1 就变成了 192。168。1。*
最后:为什么我非要倒过来取?因为SQL 目前还没 ASP。NET 的 lastindexof 方法功能
如果想在。NET AJAX 下使用自定义JS方法 那么。NET AJAX是不支持普通定义方法的,可以通过注册SCRIPTMANAGER来构造
ScriptManager.RegisterStartupScript 方法
ScriptManager.RegisterStartupScript(this.UpdatePanel4, this.GetType(), "updateScript", "alert('发表成功')", true);
this.UpdatePanel4 是引用或者内部要触发JS的UpdatePanel(也可以是其他对象)
this.GetType() 出发者的类型(这里直接写 this.GetType()就可以)
"updateScript" 随意写个有代表性的JS标识就OK,跟函数名一样
"alert('发表成功')" 函数体(JS)
true 代表 确实要追加显示JS(在页面浏览器观看源代码可以看到)
另外PAGE的RegisterStartupScript 也可以全局添加JS代码
二:
ScriptManager.RegisterScriptBlock 方法类似于上面函数,但是他相当于Attribute方法 只在加入后第二次事件才激发
三:将本页设置为收藏或者某站点加入浏览器收藏的代码(非原创)
<a style="cursor:hand" onClick="window.external.addFavorite(top.location.href,'加在收藏夹中的页面名称)">将本页加入收藏夹</a>
将某个网站加入设为首页的JS
<span onclick="var strHref=window.location.href;this.style.behavior='url fault#homepage)';this.setHomePage('http://www.sitehome.cn');" style="CURSOR: hand">设为首页</span>
四:如果数据库中有这样的字段 结果:2313,3213132,3123123,31231231
你想知道实际上字段内容中 排除所有“,”号后的长度 SQL写法为 Select Len(A)-Len(Replace(A,'i','')) From tableName (这里把i换成“,”就可以了)
五: 用户表内有积分列Digg_Jf 你想对他们的结果进行排名的话请看下面代码
select rowid=identity(int,1,1),User_ID into #aaa from Digg_Users order by Digg_Jf desc select rowid from #aaa where User_ID = 传入的用户名 drop table #aaa
原因:rowid=identity(int,1,1), 代表 初始为1 自动每行增长1点 给rowid 并且追加到aaa(临时表) 然后从这个表搜索结果(自己去试试就知道了)
六:匿名用户在表里 临时记录User_ID为0,还有个记录他IP
要求 如果搜索是匿名用户的话 User_NickName列 结果为 酷体网友(197。223。323。*) ---这里的IP是匿名用户IP最后为是*
下面语句可以解决
select A.User_ID,A.nRemark_Content,A.nRemark_AddTime,A.User_IP,B.Digg_Header,User_NickName=case when A.User_ID=0 then '酷体网友('+reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' else B.User_NickName end from News_Remark A left outer join Digg_Users B on A.User_ID=B.User_ID where A.News_ID='1' and A.nRemark_State=0
解释:User_NickName=case when A.User_ID=0 then '酷体网友('+reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' else B.User_NickName end
的意思是(CASE语句用法): 如果A。User_ID 是0的话 那么User_NickName列返回 酷体网友 +IP(带*) ELSE(否则)正常返回
而我写的reverse(substring(reverse(A.User_IP),charindex('.',reverse(A.User_IP)),100))+'*)' 就是先把IP倒过来(reverse)然后(charindex)取倒IP
最后的 点(。)的位置然后用substring 取倒IP,从索引位置一取 取100长度(没那么长也不影响) 然后在把结果倒过来
比如 192.168.1.1 就变成了 192。168。1。*
最后:为什么我非要倒过来取?因为SQL 目前还没 ASP。NET 的 lastindexof 方法功能