天天看點

.net開發中自己遇到的問題自己解決的方法總結

     (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!  

 寫到這裡彈出視窗的制作和應用技巧基本上算是完成了

繼續閱讀