2013年11月20日 星期三

設定網頁操作模式相容於舊版IE

由於瀏覽器不斷更新,也造成網頁程式在不同版本上執行出現問題,如果要逐一解決問題,IT人員恐怕會夜不安眠吧,幸好,MS IE提供一種簡易解法,可將網頁向下相容於舊版IE,這樣,就算使用者以新版IE執行,它也會以網頁所設定的版本解析HTML/Javascript,經測試結果好像還不賴。

處理方法很簡單,只要在網頁的段落內加上下列宣告,就搞定了。
<meta http-equiv="X-UA-Compatible" content="IE=7" />
如果網頁眾多,建議在主版網頁(Master Page)內宣告,就一勞永逸了。

2012年5月7日 星期一

Q: How to implement Multi-threading?
A: 
1. Simple

Module Module1

    Sub Main()
        For i As Integer = 1 To 10
            ' create a thread and run
            Dim obj As New Threading.Thread(AddressOf ThreadMethod)
            obj.Start()
        Next
        Console.ReadLine()
    End Sub

    ' the running method in every thread
    Sub ThreadMethod()
        Console.WriteLine(Now)
    End Sub
End Module
2. With Parameters : add Sub() before the method in Thread object initialization
Dim obj As New Thread(Sub() SaveImage(url, mFileName))
obj.Start()

...

    Public Sub SaveImage(url As String, mFileName As String)
        'Public Sub SaveImage()
        'Dim url As String, mFileName As String
        Dim objWebClient As New WebClient

        objWebClient.DownloadFile(url, mFileName)
        Console.WriteLine(url)
    End Sub

2012年4月15日 星期日

ASP.net Menu 在 IE9、Google Chrome、FireFox 內執行出現空白

Q: ASP.net Menu 在 IE9、Google Chrome、FireFox 內執行,下拉式選單出現空白
A: 在母版網頁的內加一行如下:




or


2011年12月26日 星期一

XML 解析

Q: 讀入一個字串,如何取出節點的值?
A:
Dim xmltext As New System.Text.StringBuilder
Dim strReader As StringReader = New StringReader(mXml)
Dim reader As XmlTextReader = New XmlTextReader(strReader)
Dim docNav As New XPathDocument(reader)
Dim objxPath As XPathNavigator = docNav.CreateNavigator
Dim objNode As XPathNavigator = objxPath.SelectSingleNode("/")
Return objNode.Value

2011年6月13日 星期一

DataSet Tips

DataSet 是一個儲存在記憶體內的資料庫,它擁有很多類似資料庫的操作功能,例如:

1. 兩表合併(Merge Table)
Table1.Merge(Table2, False)
有時候,這個方法會因為資料結構造成失敗,此時可改用DataRelation,將兩個Table Join。
Dim mDataRelation As New DataRelation("TempJoin", Table2Columns, Table1Columns, False)
ds.Relations.Add(mDataRelation)
' jj 是Table2填入Table1的起始欄位
For Each mRow As DataRow In Table1.Rows
For ii = jj To Table2.Columns.Count - 1
mRow(jj+ii) = mRow.GetParentRow("TempJoin")(ii)
Next
Next

2. 排序(Sort)
Table1.DefaultView.Sort(Field1)
For i = 0 To Table1.DefaultView.Count - 1
aa=Table1.DefaultView(i).Item("Field2")
next

3. 篩選(Filter)
Dim rows As DataRow() = dtTopicid.Select("Field1='aaa'")

4. 衍生欄位(Derived Field)
Dim col As DataColumn
col = dt.Columns.Add("ExpCol", GetType(Boolean), expr)



另外,還有一些小技巧,與大家分享:
1. 欄位值大小寫有區別(Case Sensitive)
Table1.CaseSensitive = True

2. 設定額外屬性(Custom Property)
column.ExtendedProperties.Add("TimeStamp", DateTime.Now)

3. 取唯一值(Unique Values)
Dim dtDistinct As DataTable = Table1.DefaultView.ToTable("Table1", True, "Field1")

2011年4月13日 星期三

以內碼設定字串值

Q:如何列印所有的中文字或全行字?

A:
For i As Integer = 0 To 20901
sb.Append(ChrW(&H4E00 + i))
Next
** Console mode 無法顯示部份字元,例如ㄎ,應該是DOS Mode的中文字集不足的問題。

2011年1月25日 星期二

VS 安裝專案的注意事項

產生安裝專案時有兩件事,設定常常找不到:

  1. 要在桌面產生一個捷徑
  2. 要使用.net framework 2.0

在桌面產生一個捷徑

不能在【使用者的桌面】按滑鼠右鍵增加一捷徑,這樣會使捷徑指到執行檔所在目錄,而非執行檔本身;必須在【應用程式資料夾】的【主要輸出】按滑鼠右鍵增加一捷徑,再將該捷徑拖曳到【使用者的桌面】。

要使用.net framework 2.0

除了執行檔專案建置要設成.net framework 2.0外,在安裝專案的Mocrosoft .net Framework項目,須Double Click後,設定.net framework 2.0,如下圖。

1

2