close

這個小問題著實也費了番功夫

一開始很天真的以為只要是繫結欄位都只要用
GridView.Rows(Index).Cell(Index).Text 就可以取得
無奈如果你的欄位是一個ButtonField或是HyperLinkField他只會回傳給你一個空字串
 
原是啥呢...因為這兩種欄位他還是有自己的Text屬性
但是如我們要依照資料庫篩選的資料來顯示 就會去設定 DataTextField 屬性為對應的欄位名稱
 
如果同時設定Text跟DataTextField那Text屬性會無效
但是我沒有去測試這樣是否就會取到Text的值 ~ 反正我們要的是變動的值 ~
 
那要怎麼取得DataTextField上的文字呢
這個問題的資料查起來還真的不多
有一部分的解答是錯誤的 後來找的一份正確的
 
錯誤的資料如下:
C# 語法 
string Mystr1 = ((HyperLink)row.Cells[1].Controls[0]).Text;
string Mystr2 = ((Button)row.Cells[2].Controls[0]).Text
VB 語法
string Mystr1 = CType(GridView1.Rows(Index).Cells(Index).Controls(0), HyperLink).Text
string Mystr2 = CType(GridView1.Rows(Index).Cells(Index).Controls(0), Button).Text
 
正確語法如下
C#語法
string Mystr1 = ((HyperLink)row.Cells[1].Controls[0]).Text;
string Mystr2 = ((LinkButton)row.Cells[2].Controls[0]).Text
VB 語法
string Mystr1 = CType(GridView1.Rows(Index).Cells(Index).Controls(0), HyperLink).Text
string Mystr2 = CType(GridView1.Rows(Index).Cells(Index).Controls(0), LinkButton).Text
 
HyperLinkField轉換型別為HyperLink沒有問題
但是ButtonField的部分 則是轉換成LinkButton而不是Button
arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(0) 人氣()