作者testcrack (testcrack)
看板C_Sharp
標題[問題] GridView分頁與ImageButton的問題
時間Wed Nov 3 11:12:23 2010
我的GridView有開分頁(AllowPaging=true)
分頁的功能沒有問題,但是後來我新增了三個欄位,每個欄位都有放ImageButton
發現點選其他頁時,就會出現錯誤訊息...
錯誤訊息如下:
無法將型別 'System.Web.UI.WebControls.GridView' 的物件轉換為型別
'System.Web.UI.WebControls.ImageButton'。
此欄位的動作如下:
protected void GridView1_RowCommand(object sender,GridViewCommandEventArgs e)
{
GridViewRow selectedRow =
(GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
int index = selectedRow.RowIndex;
string Event_ID =
(GridView1.Rows[index].Cells[1].FindControl("HyperLink1") as
HyperLink).Text.ToString();
if (e.CommandName.ToString() == "Select1")
Response.Write(Event_ID+"-A");
if (e.CommandName.ToString() == "Select2")
Response.Write(Event_ID+"-B");
if (e.CommandName.ToString() == "Select3")
Response.Write(Event_ID+"-C");
}
這三個欄位都是GridView中的樣板
第一個欄位放的ImageButton,CommandName是Select1,其餘類推..
至於會多加.ToString(),以及用if不用switch,這是壞習慣 XD
習慣先用這樣的方式速寫,最後再改.. XD
請問該麼處理?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.154.204
推 Laluth:e.CommandSource 是 GridView 不是ImageButton 11/03 12:00
→ testcrack:L大,如果不用分頁,上述程式是沒問題的。但是若啟用分 11/03 16:58
→ testcrack:頁,就會發生錯誤。錯誤的地方也剛好是您提的那一行。可 11/03 16:59
→ testcrack:否請問一下,您意思是該如何修改?(改成GridView嗎?) 11/03 17:05
推 Deadshot465:話說e.CommandName是一樣的吧...?怎麼會有123囧? 11/03 18:36
→ Deadshot465:然後e.CommandName本身已經是string了... 11/03 18:36
→ Deadshot465:再ToString()有點多此一舉.. 11/03 18:37
※ 編輯: testcrack 來自: 220.132.154.204 (11/03 18:49)
推 Deadshot465:三個欄位中的都是ImageButton嗎? 11/03 19:20
→ testcrack:回D大:是的! ^^" 11/03 23:26
推 Deadshot465:我剛剛試過了 換頁時確實如L大說的會觸發RowCommand 11/04 01:35
→ Deadshot465:所以你要先判斷e.CommandSource是不是ImageButton 11/04 01:35
推 Deadshot465:e.CommandSource.GetType() == typeof(ImageButton) 11/04 01:38
→ Deadshot465:這樣就會執行正常了 11/04 01:39
→ testcrack:感謝L大與D大,成功了!謝謝! ^^" 11/04 18:37