發表文章

目前顯示的是 2008的文章

精品程式碼收藏

圖片
1. oncontextmenu="window.event.returnvalue=false" 將徹底過濾滑鼠游標右鍵 no 可用於Table 2. 取消選取、防止複製 3. onpaste="return false" 不准複製貼上 4. oncopy="return false;" oncut="return false;" 防止複製 5. IE地址欄前換成自己的圖示 6. 可以在[我的最愛]中顯示出你的圖示 7. 關閉輸入法 8. 永遠都會帶著框架 9. 防止被人frame 10. 網頁將不能被另存為 11. onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'"> 12. 怎樣通過asp的手段來檢查來訪者是否用了代理 <% if Request.ServerVariables("HTTP_X_FORWARDED_FOR")<>"" then response.write " 您通過了代理伺服器,"& _ "真實的IP為"&Request.ServerVariables("HTTP_X_FORWARDED_FOR") end if %> 13. 取得元件的絕對位置 //javascript //VBScript 14. 游標是停在文字輸入方塊文字的最後 15. 判斷上一頁的來源 asp: request.servervariables("HTTP_REFERER") java script: document.referrer 16. 最小化、最大化、關閉視窗 本例適用於IE 17. <

分行模組,自動識別英文和型號數

Function cuttextlen(intext, lens) If Len(intext) <= lens Then cuttextlen = intext Else tmptext = intext GetTexts = "" Do While Not Len(tmptext) <= lens GetTexts = GetTexts + Left(tmptext, lens) tmptext = Right(tmptext, Len(tmptext) - lens) Do While (Asc(Left(tmptext, 1)) >= 65 And Asc(Left(tmptext, 1)) <= 90) Or (Asc(Left(tmptext, 1)) >= 97 And Asc(Left(tmptext, 1)) <= 122) Or (Asc(Left(tmptext, 1)) >= 45 And Asc(Left(tmptext, 1)) <= 57) GetTexts = GetTexts + Left(tmptext, 1) tmptext = Right(tmptext, Len(tmptext) - 1) 'If Len(tmptext) <= lens Then Exit Do Loop GetTexts = GetTexts & " " Loop cuttextlen = GetTexts & tmptext End If End Function 實際範例位置還是WWW.HIFI-CHINA.COM 本文章來自於神魂顛倒論壇 http://bbs.flash2u.com.tw 原文網址:http://bbs.flash2u.com.tw/dispbbs_58_53516_16.html

ASP如何獲取客戶端真實IP地址

在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 來取得客戶端的IP地址,但如果客戶端是使用代理伺服器來瀏覽,那取到的就是代理伺服器的IP地址,而不是真正的客戶端IP地址。要想透過代理伺服器取得客戶端的真實IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取。不過要注意的事,並不是每個代理伺服器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 來讀取客戶端的真實 IP,有些用此方法讀取到的仍然是代理伺服器的IP。還有一點需要注意的是:如果客戶端沒有通過代理伺服器來瀏覽,那麼用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值將是空的。因此,如果要在程式中使用此方法,可以這樣處理: ...... userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR") ...... 即:如果客戶端通過代伺服器,則取 HTTP_X_FORWARDED_FOR 的值,如果沒通過代裡伺服器,就取 REMOTE_ADDR 的值。 以下是引用片段: 0 Then strIPAddr = Request.ServerVariables("REMOTE_ADDR") ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR&qu

ASP.NET 產生 PDF 或 XPS 檔

以下 ASP.NET 程式碼可以在伺服器端使用 Excel 檔當樣版, 修改 Excel 檔儲存格內容,然後使用列印或另存的方式來產生 PDF 或 XPS 檔, 先決條件是伺服器端有安裝 Office 2007 (如果要另存 PDF, XPS), 以及安裝增益集: http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=4d951911-3e7e-4ae6-b059-a2e79ed87041 不要忘記加入參考: Microsoft.Office.Tools.Excel 代碼: Imports Microsoft.Office.Interop Imports System.IO Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim oExcel As New Excel.Application Dim oBooks As Excel.Workbooks, oBook As Excel.Workbook Dim oSheets As Excel.Sheets, oSheet As Excel.Worksheet Dim oCells As Excel.Range Dim sFile As String, sTemplate As String ' Excel 檔路徑 sTemplate = Server.MapPath("Demo.xlsx") ' 副檔名可以改成 .xls, .xps, .pdf sFile = Server.MapPath(Session.SessionID & ".pdf") oExcel.Visible = False oExcel.DisplayAlert

asp.net常用函數表

數字處理 Int(number) 傳回小於或等於接收參數的最大整數值。 Math.Abs(number) 取得數值的絕對值。 Math.Acos 傳回餘弦函數 (Cosine) 是指定數字的角。 Math.Asin 傳回正弦函數 (Sine) 是指定數字的角。 Math.Atan 傳回正切函數 (Tangent) 是指定數字的角。 Math.Atan2 傳回正切函數是兩個指定數字之商數的角。 Math.BigMul 產生兩個 32 位元數字的完整產品。 Math.Ceiling 傳回大於或等於指定數字的最小整數。 Math.Cos 傳回指定角的餘弦函數。 Math.Cosh 傳回指定角的雙曲線餘弦函數。 Math.DivRem 計算兩個數字的商數,也傳回餘數做為輸出參數。 Math.Exp 傳回具有指定乘冪數的 e。 Math.Floor 傳回小於或等於指定數字的最大整數。 Math.IEEERemainder 傳回指定數字除以另一個指定數字所得的餘數。 Math.Log 傳回指定數字的對數。 Math.Log10 傳回指定數字的底數 10 對數。 Math.Max 傳回兩個指定數字中較大的一個。 Math.Min 傳回兩個數字中較小的一個。 Math.Pow 傳回具有指定乘冪數的指定數字。 Math.Round 將值捨入至最接近的整數或是指定的小數位數數字。 Math.Sign 傳回數值,指示數字的正負號。 Math.Sin 傳回指定角的正弦函數。 Math.Sinh 傳回指定角的雙曲線正弦函數。 Math.Sqrt 傳回指定數字的平方根。 Math.Tan 傳回指定角的正切函數。 Math.Tanh 傳回指定角的雙曲線正切函數。 Math.Truncate 計算數字的整數部分。 CallByName (object, procname, usecalltype,[args()]) 執行一個物件的方法、設定或傳回物件的屬性。 Log(number) 取得數值的自然對數。 型態轉換 CBool(expression) 轉換運算式為Boolean 型態。 CByte(expression) 轉換運算式為Byte 型態。 CChar(expression) 轉換運算式為字元型態。 CDate(expre

建立縮圖

當我在更新我的Ajax示例的時候,我需要為某個目錄下的圖片創建縮略圖。可用的工具實在是多不勝數,不過我還是想分享一下我所使用的一段非常簡單的代碼。 這段程式會提取根目錄下的所有jpg檔,為它們創建160*120的縮略圖,並將圖片拷貝到完整路徑下。 namespace ThumbNailer { class Program { static void Main(string[] args) { string rootPath = @"C:\Users\brada\Desktop\ForDemo"; string thumbPath = Path.Combine(rootPath, "Thumb"); if (Directory.Exists(thumbPath)) DirectoryDelete(thumbPath); Directory.CreateDirectory(thumbPath); int imageNumber = 0; foreach (string s in Directory.GetFiles(rootPath, "*.jpg")) { imageNumber++; Console.WriteLine("{0}:{1}", imageNumber, s); Image i = Image.FromFile(s); Image thumb = i.GetThumbnailImage(160, 120, null, IntPtr.Zero); thumb.Save(Path.Combine(thumbPath, GetName(imageNumber))); } } static void DirectoryDelete(string directo

動態建立控制項的正確方法

很多 ASP.NET 初學者對於在 Web Form 動態建立控制項的問題困擾,常見到的問題是為何動態建立的控制項無法像拖曳到畫面上的控制項有一樣的效果,例如無法載入 ViewState 的資料 (無法呈現更新的值) 及動態控制項事件處理等等問題。 以下這個範例就是說明如何在 Web Form 上動態建立一個 TextBox 及 Button 控制項,並處理 Button 的 Click 事件。 以下為《VB》原始碼 開新視窗複製到剪貼簿列印出來? Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init Dim oTextBox As New TextBox() Dim oButton As New Button() oTextBox.ID = "myTextBox" oTextBox.Text = "AAA" 'TextBox的初始值為 AAA Me.Form.Controls.Add(oTextBox) oButton.ID = "myButton" oButton.Text = "按鈕" Me.Form.Controls.Add(oButton) '將 Button 的 Click 事件導向 Button_Click 函式 AddHandler oButton.Click, AddressOf Button_Click End Sub 'Button 的 Click 事件導向函數 Protected Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim oTextBox As TextBox = Nothing oTextBox = CType(Me.FindControl("myTextBox"), TextBox)

New 與 Dispose

Dim oEmp as ObjEmployee oEmp = New ObjEmployee Dim oEmp as ObjEmployee oEmp = New ObjEmployee 而且少了New就不能執行,那麼什麼是New呢 New是產生執行個體,不過相信很多人又要問,什麼是【產生執行個體】 (能不能講明白一點啊!! ) 這要提到電腦的程式運作過程。程式在電腦上跑,會把程式的區段,在記憶體裡面挖一塊空間,然後把程式碼載入那塊空間 接著程式在運作的時候,就是記憶體與CPU之間溝通、運算、記錄等動作,而把【挖塊記憶體,把程式載到那塊空間】這個過程就是【產生執行個體】。 因此沒有New的話會怎樣,程式區塊根本沒有載入到記憶體中,因此也無法運作執行 講的擬人化一點 Dim oEmp as ObjEmployee '宣告oEmp是ObjEmployee這種物件類別(此時有魂無體) oEmp = New ObjEmployee '產生執行個體(此時投胎轉世,靈魂變成實體,可以開始工作) 什麼是Dispose 當一個物件已經使用完後,未來不會再使用,此時這個物件已經完成他這一生(New完之後到現在)的任務。因此他可以塵歸塵、土歸土...一切還諸天地...此時就進行Dispose 然而實際上,在記憶體中,當物件Dispose的時候,並沒有把該段記憶體清空,只是標註,這段空間不再使用,直到GC啟動把他清空才算真正的清空。 因此如果用完後,不進行Dispose...那麼就會等到該位置很久沒動作了(就像有個人躺在地上,已經超過一定時間(一個月??)沒動作,也沒呼吸),才會被其他的程式拿來用。 以上說明的是New(生)與Dispose(死)的關係 本文章來自於神魂顛倒論壇 http://bbs.flash2u.com.tw 原文網址:http://bbs.flash2u.com.tw/dispbbs_58_85547_2.html

自動關閉視窗

把關閉視窗的程式碼放到 alert 後面。 Me.ClientScript.RegisterStartupScript(GetType(String), "", " ")

System.Web.Mail

http://www.systemwebmail.com/faq/4.1.aspx ------------ Dim NewMail As SmtpMail Dim message As New MailMessage Dim mailID As String = ConfigurationSettings.AppSettings("MailID") Dim mailPwd As String = ConfigurationSettings.AppSettings("MailPwd") NewMail.SmtpServer = ConfigurationSettings.AppSettings("MailServer") message.BodyFormat = Mail.MailFormat.Html message.From = ConfigurationSettings.AppSettings("FromAddr") message.Priority = MailPriority.High '指定電子郵件訊息有高優先權 message.To = ToAddr '收件人mail message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", ConfigurationSettings.AppSettings("MailServer")) message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25) message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2) message.Fie

按鈕加上詢問訊息

http://www.dotblogs.com.tw/jeff377/archive/2008/03/17/1697.aspx 如果你希望頁面上的按鈕不要被重覆執行,那就要在使用者按下這個按鈕時,將該按鈕設為失效(Disabled)。若要達到這種需求,就需要在 Client 端的按鈕 onclick 事件中,將該按鈕設為失效。 假設有一個 ID 為 Button1 的按鈕,則實作的程式碼如下: view plaincopy to clipboardprint? Button1.Attributes("onclick") = "this.disabled=true;" & Me.ClientScript.GetPostBackEventReference(Button1, "") Button1.Attributes("onclick") = "this.disabled=true;" & Me.ClientScript.GetPostBackEventReference(Button1, "") 輸出的 HTML 原始碼如下 view plaincopy to clipboardprint? 按鈕的 onclick 時會執行二件事,一是先將該按鈕設為失效,再來是呼叫 __doPostBack 函式。因為按鈕已經先被設為失效,按鈕的 sumbit 功能也會失效,所以要自行再呼叫 __doPostBack 函式,來執行 PostBack 的動作。

Sssion Time Out 3

http://www.dotblogs.com.tw/mis2000lab/archive/2008/06/06/4246.aspx http://www.todayisp.com/support/FAQ/VHost/200808/18-297.html http://big5.chinaz.com:88/chinaz.com/Program/.NET/0425JN2007.html

Sssion Time Out 2

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=3766949&SiteID=14 我們的作法: 設計一個BaseForm class,也就是一個基底類別供每頁繼承 而這個BaseForm又繼承自System.Web.UI.Page,所以有page.load事件 在這個BaseForm.Page_load()裡面會判斷session是否逾時 如果逾時的話就把畫面導到default page,比如:登入頁面 例如: 'Class BaseForm定義: Public Class BaseForm Inherits System.Web.UI.Page Protected _DefaultPageName As String = ConfigurationManager.AppSettings("Default_page") Protected _WebSiteRoot As String = ConfigurationManager.AppSettings("WebSiteRoot") '這個page_load會最早執行 Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load If IsNothing(Session("UserData")) Then Response.Redirect(Me._WebSiteRoot & Me._DefaultPageName, True) '靠這個把session遺失的導入default page End If End Sub End Class '其他頁面的定義: Partial Class OtherPage Inherits BaseForm '再來才會執行這個頁面的page_load Protected Sub Page_Load(ByVal sender As Object,

Time out 時間設定

:           cookieless="false"         timeout="30" />   private void Page_Load(object sender, System.EventArgs e) { Response.Write(Session.Timeout.ToString()); } http://msdn.microsoft.com/zh-tw/library/ms164669.aspx 因 web.config 之設定結果 (包括說明文件) 皆和實際運作不符,為避免困擾, 我已不使用 sessionState 之 timeout 設定,改為自定參數 , 然後當使用者登入成功後,即在程式裡直接設定   Session.Timeout = ToInt32(ConfigurationSettings.AppSettings("SessionTimeout"))  如此,即得到本人所要的結果。 謝謝您的幫忙!

C# 自動取不重覆的亂數

內容 我寫了個簡單取亂數的小元件, 呼叫的方式如下: using Webapp.Free; static void Main(string[] args) { //第一種應用方式 myRand rd = new myRand(); //建立此元件 rd.Next(); //取得十個不重覆的亂數 Console.WriteLine(rd.List()); //將它們變成字串,用逗號隔開 //第二種應用方式 myRand rd2 = new myRand(8); //只取8個亂數 0~7 rd2.Next(); //取得亂數 Console.WriteLine(rd2.List()); //顯示結果 //第三種應用方式 rd2.iCount=5; //只取5個亂數 rd2.Next(); //取得亂數 Console.WriteLine(rd2.List()); //顯示結果 //第四種應用方式 rd2.Next(20); //只取20個亂數 Console.WriteLine(rd2.List()); //第五種應用方式 //取第4個數字:rd2[3], 第19個數字: rd2[18], 由於只有20個亂數,若取rd2[35],則會傳回-1 Console.WriteLine(rd2[3] +"," + rd2[18] + "," + rd2[35]); } 您可以下載它,並免費用於任何商業或自己的專案中, 您可以隨專案安裝在客戶電腦中, 但請勿將此元件單獨地直接散佈給第三人,有需要的人均可從這裡直接下載回去免費使用。 若您發現有任何bug,煩請告知, 謝謝

關於 字元 的 半形 / 全形 轉換

<< VB.Net >> Imports System.Text Public Class Form1 ' 如何判斷輸入的字元是 "全形" 或 "半形" ? ' 方法 1 Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs) _ Handles TextBox1.KeyPress ' 判斷輸入字元的 ASCII 字元碼之 16 進位長度 , 2 為半形 If Hex(Asc(e.KeyChar)).Length = 2 Then MessageBox.Show("半形字元") Else MessageBox.Show("全形字元") End If End Sub ' KeyPressEventArgs.KeyChar 屬性 : 取得對應於所按下按鍵的字元。 ' Hex 函式 : 傳回代表數字十六進位值的字串。 ' Asc 函式 : 傳回Integer 值,表示與字元對應的字元碼。 ' Asc 會傳回輸入字元的「字碼指標」(Code Point) 或字元碼。 ' 這可以是值從 0 到 255 的單一位元組字元集 ( Single-Byte Character Set,SBCS ), ' 和值從 -32768 到 32767 的雙位元組字元集 ( DBCS )。 ' ASCII 字碼表含有擴充 ASCII (American Standards Committee for Information Interchange) ' 字元集的 十進位 和 十六進位值。 ' 擴充字元集包括 ASCII 字元集和 128 個繪製圖形和線條的其他字元,通常稱為「IBM 字元集」。 ' 在Windows 中,字碼大於 127 的字元,其顯示會依選取的字體而不同。 ' ================================================================ ' 方法 2 Private Sub TextBox2_Ke

c# 有什么控件 能把里边的输入格式也保存起来?

悬赏分:20 - 解决时间:2008-7-16 09:42 在c# .net 做网页 有什么控件 能把里边的输入格式也保存起来? 就是把它里面的 空格 回车 什么的都可以用它的.text 给保存到数据库里 然后从数据库里取出的数据可以直接显示成以前的模式? 提问者: 7228291 - 试用期 一级 最佳答案 放到一个xml文件中吧 回答者: evenbing - 经理 四级 6-26 09:47 我来评论>> 评价已经被关闭 目前有 0 个人评价 好 50% (0) 不好 50% (0) 相关内容 • c#控件问题 • 请高手们帮解答Visual C++的控件设置问题 • 控件+C#类 • 关于 控件 (c) • C#中第三方控件已经注册却仍提示未注册,为何? 更多关于Convert.ToChar(13)的问题>> 查看同主题问题:格式 保存 控件 起来 其他回答 共 5 条 richTextbox和freeTextBox 回答者: 贰壹肆伍捌 - 大魔法师 九级 6-26 09:47 你可以去晚上找个第三方控件。。ubb控件。。这个控件有text属性。。直接可以获取存放到数据库中 回答者: sjyh5201 - 魔法师 四级 6-26 09:47 在存进库里之前先replace. string aa=this.textbox1.text; aa.replace("\r\n"," ");--->把回车替换成 aa.replace(" "," ");--->把空格替换成 在配合网页里面的 标记效果能更好一点! 回答者: majunbopm - 高级经理 六级 6-26 09:50 把控件的值传到数据库之前对控件的值做如下处理,我拿一个叫list的textbox控件做例子,加上如下代码,传到数据库中的文字就带格式了,我都是这么做的,如果要读取,就把代码中replace后面的两个参数倒过来,可以把你用不到的格式去掉,经常用的是回车和空格 list.Text = list.Text.Repla

.Net Framework基礎與VB.Net內建函數

Ch3 -------------------------------------------------------------------------------- .Net Framework預設匯入之名稱空間(namespace) 詳細參考web.config設定 ex. system   system.collections   system.text 字元編碼,轉換,字串操作 system.text.regular 正規運算式 system.web HTTP物件 system.web.caching   system.web.sessionstate   ssytem.web.security   system.web.UI 伺服器控制項和使用者介面元素 system.web.UI.webcontrols Web控制項 system.web.UI.htmlcontrols HTML控制項 如果使用到非預設匯入之名稱空間,需使用import指令匯入 ex. 連結database <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> / <%@ Import Namespace="System.Data.SQLClient" %>   匯入上層不代表匯入下層 -------------------------------------------------------------------------------- VB.Net內建函數 (V.S. 自訂函數) 亂數函數 rnd >=0 ~ <1   配合int(n) 試寫 大樂透: 初級版 / (1 ~ 49亂數 * 6) > 中級版(使用textbox,button) > 高級版(使用validator)   配合fix(n) 試寫 50 ~100亂數 / int((最大亂數值 - 最小亂數值 + 1) * rnd +最小亂數值)   整數數值函數 cint(n) / 轉為整數型態 (四捨六入五成雙)   int(n) / 最近較小整數   fix(n) / 去掉小數部分