(1)、關于<%#Eval("")%>中取指定長度字元顯示的方法
最近在用Lucene.net進行全站搜尋内容時,對于repeater控件中用<%#Eval("content")%>擷取内容時,由于該取得的内容較長,是以自然而然的想到截取部分内容顯示,方法如下:
在背景的cs檔案裡增加一個public的方法,如
public string getSubString(string str)
{
if (str.Length > 200)
str = str.Substring(0, 197)+" ...";
return str;
}
這樣在前台的aspx頁面裡就可以用該方法擷取内容了:
<%# this.getSubString(Eval("内容").ToString())%>
OK,搞定!
<asp:TemplateColumn HeaderText="編号">
<ItemTemplate>
<%#Container.DataSetIndex+1 %>
</ItemTemplate>
<ItemStyle Width="5%" />
</asp:TemplateColumn>
(2)、js常見的集中跳轉方式
按鈕式:
<INPUT name="pclog" type="button" value="GO" onClick="location.href='http://www.ddhbb.com/'">
連結式:
<a href="javascript:history.go(-1)">傳回上一步</a>
<a href="<%=Request.ServerVariables("HTTP_REFERER")%>">傳回上一步</a>
直接跳轉式:
<script>window.location.href='http://www.ddhbb.com';</script>
開新視窗:
<a href="javascript:" onClick="window.open ('http://www.ddhbb.com/blog /guestbook.asp','','height=500,width=611,scrollbars=yes,status=yes')"& gt;布丁足迹 </a>
JS跳轉頁面參考代碼
第一種:
<script language="javascript" type="text/javascript">
window.location.href="login.jsp?backurl="+window.location.href;
</script>
第二種:
<script language="javascript">
alert("傳回");
window.history.back(-1);
第三種:
<script language="javascript">
window.navigate("top.jsp");
第四種:
<script language="JavaScript">
self.location=’top.htm’;
第五種:
alert("非法通路!");
top.location=’xx.jsp’;
=====javascript中彈出選擇框跳轉到其他頁面=====
<!--
function logout()...{
if (confirm("你确定要登出身份嗎?是-選擇确定,否-選擇取消"))...{
window.location.href="logout.asp?act=logout"
}
}
-->
</script>
(3)、自定義使用者控件 ClientScript 提示不存在
ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script>alert('請選擇要在哪個節點下增加分類')</script>");
改寫,在加下Page字首即可,如下:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script>alert('請選擇要在哪個節點下增加分類')</script>");
(4)ASP.net擷取目前url各種屬性(檔案名、參數、域名 等)的方法
假設目前頁完整位址是:http://www.test.com/aaa/bbb.aspx?id=5&name=kelli
"http://"是協定名
"www.test.com"是域名
"aaa"是站點名
"bbb.aspx"是頁面名(檔案名)
"id=5&name=kelli"是參數
【1】擷取 完整url (協定名+域名+站點名+檔案名+參數)
string url=Request.Url.ToString();
url= http://www.test.com/aaa/bbb.aspx?id=5&name=kelli
【2】擷取 站點名+頁面名+參數:
string url=Request.RawUrl;
(或 string url=Request.Url.PathAndQuery;)
url= /aaa/bbb.aspx?id=5&name=kelli
【3】擷取 站點名+頁面名:
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或 string url= HttpContext.Current.Request.Path;)
url= aaa/bbb.aspx
【4】擷取 域名:
string url=HttpContext.Current.Request.Url.Host;
url= www.test.com
【5】擷取 參數:
string url= HttpContext.Current.Request.Url.Query;
url= ?id=5&name=kelli
(5)、各種視窗彈出方法
【1、最基本的彈出視窗代碼】 其實代碼非常簡單: <SCRIPT LANGUAGE= "javascript "> <!-- window.open ( 'page.html ') --> </SCRIPT> 因為這是一段javascripts代碼,是以它們應該放在 <SCRIPT LANGUAGE= "javascript "> 标簽和 </script> 之間。 <!-- 和 --> 是對一些版本低的浏覽器起作用,在這些老浏 覽器中不會将标簽中的代碼作為文本顯示出來。要養成這個好習慣啊。 window.open ( 'page.html ') 用于控制彈出新的視窗page.html,如果page.html不與主視窗在同一路徑下,前面 應寫明路徑,絕對路徑(http://和相對路徑(.. /)均可。 用單引号和雙引号都可以 ,隻是不要混用。 這一段代碼可以加入HTML的任意位置, <head> 和 </head> 之間可以, <body> 間 </body > 也可以,越前越早執行,尤其是頁面代碼長,又想使頁面早點彈出就盡量往前放。
【2、經過設定後的彈出視窗】 下面再說一說彈出視窗的設定。隻要再往上面的代碼中加一點東西就可以了。 我們 來定制這個彈出的視窗的外觀,尺寸大小,彈出的位置以适應頁面的具體情況。 <SCRIPT LANGUAGE= "javascript "> <!-- window.open ( 'page.html ', 'newwindow ', 'height=100, width=400, top=0, lef t=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, statu s=no ') //寫成一行 --> </SCRIPT> 參數解釋: <SCRIPT LANGUAGE= "javascript "> js腳本開始; window.open 彈出新視窗的指令; 'page.html ' 彈出視窗的檔案名; 'newwindow ' 彈出視窗的名字(不是檔案名),非必須,可用空 ' '代替; height=100 視窗高度; width=400 視窗寬度; top=0 視窗距離螢幕上方的象素值; left=0 視窗距離螢幕左側的象素值; toolbar=no 是否顯示工具欄,yes為顯示; menubar,scrollbars 表示菜單欄和卷軸框。 resizable=no 是否允許改變視窗大小,yes為允許; location=no 是否顯示位址欄,yes為允許; status=no 是否顯示狀态欄内的資訊(通常是檔案已經打開),yes為允許; </SCRIPT> js腳本結束
【3、用函數控制彈出視窗】 下面是一個完整的代碼。 <html> <head> <script LANGUAGE= "JavaScript "> <!-- function openwin() { window.open ( "page.html ", "newwindow ", "height=100, width=400, toolbar=no , menubar=no, scrollbars=no, resizable=no, location=no, status=no ") //寫成一行 } //--> </script> </head> <body onload= "openwin() "> ...任意的頁面内容... </body> </html> 這裡定義了一個函數openwin(),函數内容就是打開一個視窗。在調用它之前沒有任 何用途。怎麼調用呢? 方法一: <body onload= "openwin() "> 浏覽器讀頁面時彈出視窗; 方法二: <body onunload= "openwin() "> 浏覽器離開頁面時彈出視窗; 方法三:用一個連接配接調用: <a href= "# " onClick= "openwin() "> 打開一個視窗 </a> 注意:使用的“#”是虛連 接。 方法四:用一個按鈕調用: <input type= "button " onclick= "openwin() " value= "打開視窗 ">
【4、同時彈出2個視窗】 對源代碼稍微改動一下: <script LANGUAGE= "JavaScript "> <!-- function openwin() { window.open ( "page.html ", "newwindow ", "height=100, width=100, top=0, lef t=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, stat us=no ") //寫成一行 window.open ( "page2.html ", "newwindow2 ", "height=100, width=100, top=100, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no , status=no ") //寫成一行 } //--> </script> 為避免彈出的2個視窗覆寫,用top和left控制一下彈出的位置不要互相覆寫即可。 最後用上面說過的四種方法調用即可。 注意:2個視窗的name(newwindows和newwindow2)不要相同,或者幹脆全部為空。 OK?
【5、主視窗打開檔案1.htm,同時彈出小視窗page.html】 如下代碼加入主視窗 <head> 區: <script language= "javascript "> <!-- function openwin() { window.open( "page.html ", " ", "width=200,height=200 ") } //--> </script> 加入 <body> 區: open即可。
【6、彈出的視窗之定時關閉控制】 下面我們再對彈出的視窗進行一些控制,效果就更好了。如果我們再将一小段代碼 加入彈出的頁面(注意是加入到page.html的HTML中,可不是首頁面中,否則 ...),讓 它10秒後自動關閉是不是更酷了? 首先,将如下代碼加入page.html檔案的 <head> 區: <script language= "JavaScript "> function closeit() { setTimeout( "self.close() ",10000) //毫秒 } </script> 然後,再用 <body onload= "closeit() "> 這一句話代替page.html中原有的 <BODY> 這 一句就可以了。(這一句話千萬不要忘記寫啊!這一句的作用是調用關閉視窗的代碼 ,10秒鐘後就自行關閉該視窗。)
【7、在彈出視窗中加上一個關閉按鈕】 <FORM> <INPUT TYPE= 'BUTTON ' VALUE= '關閉 ' onClick= 'window.close() '> </FORM> 呵呵,現在更加完美了!
【8、内包含的彈出視窗-一個頁面兩個視窗】 上面的例子都包含兩個視窗,一個是主視窗,另一個是彈出的小視窗。 通過下面的 例子,你可以在一個頁面内完成上面的效果。 <html> <head> <SCRIPT LANGUAGE= "JavaScript "> function openwin() { OpenWindow=window.open( " ", "newwin ", "height=250, width=250,toolbar=no,sc rollbars= "+scroll+ ",menubar=no "); //寫成一行 OpenWindow.document.write( " <TITLE> 例子 </TITLE> ") OpenWindow.document.write( " <BODY BGCOLOR=#ffffff> ") OpenWindow.document.write( " <h1> Hello! </h1> ") OpenWindow.document.write( "New window opened! ") OpenWindow.document.write( " </BODY> ") OpenWindow.document.write( " </HTML> ") OpenWindow.document.close() } </SCRIPT> </head> <body> 打開一個視窗 <input type= "button " onclick= "openwin() " value= "打開視窗 "> </body> </html> 看看 OpenWindow.document.write()裡面的代碼不就是标準的HTML嗎?隻要按照格 式寫更多的行即可。千萬注意多一個标簽或少一個标簽就會出現錯誤。記得用OpenWin dow.document.close()結束啊。
【9、終極應用--彈出的視窗之Cookie控制】 回想一下,上面的彈出視窗雖然酷,但是有一點小毛病(沉浸在喜悅之中,一定沒有 發現吧?)比如你将上面的腳本放在一個需要頻繁經過的頁面裡(例如首頁), 那麼每 次重新整理這個頁面,視窗都會彈出一次,是不是非常煩人?:-( 有解決的辦法嗎?Yes! ;-) Follow me. 我們使用cookie來控制一下就可以了。 首先,将如下代碼加入首頁面HTML的 <HEAD> 區: <script> function openwin(){ window.open( "page.html ", " ", "width=200,height=200 ") } function get_cookie(Name) { var search = Name + "= " var returnvalue = " "; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search) if (offset != -1) { offset += search.length end = document.cookie.indexOf( "; ", offset); if (end == -1) end = document.cookie.length; returnvalue=unescape(document.cookie.substring(offset, end)) } } return returnvalue; } function loadpopup(){ if (get_cookie( 'popped ')== ' '){ openwin() document.cookie= "popped=yes " } } </script> 然後,用 <body onload= "loadpopup() "> (注意不是openwin而是loadpop啊!) 替 換首頁面中原有的 <BODY> 這一句即可。你可以試着重新整理一下這個頁面或重新進入該頁 面,視窗再也不會彈出了。真正的Pop-Only-Once!
寫到這裡彈出視窗的制作和應用技巧基本上算是完成了