[問題] GridView分頁與ImageButton的問題

看板C_Sharp作者 (testcrack)時間15年前 (2010/11/03 11:12), 編輯推噓5(509)
留言14則, 3人參與, 最新討論串1/2 (看更多)
我的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

11/03 12:00, , 1F
e.CommandSource 是 GridView 不是ImageButton
11/03 12:00, 1F

11/03 16:58, , 2F
L大,如果不用分頁,上述程式是沒問題的。但是若啟用分
11/03 16:58, 2F

11/03 16:59, , 3F
頁,就會發生錯誤。錯誤的地方也剛好是您提的那一行。可
11/03 16:59, 3F

11/03 17:05, , 4F
否請問一下,您意思是該如何修改?(改成GridView嗎?)
11/03 17:05, 4F

11/03 18:36, , 5F
話說e.CommandName是一樣的吧...?怎麼會有123囧?
11/03 18:36, 5F

11/03 18:36, , 6F
然後e.CommandName本身已經是string了...
11/03 18:36, 6F

11/03 18:37, , 7F
再ToString()有點多此一舉..
11/03 18:37, 7F
※ 編輯: testcrack 來自: 220.132.154.204 (11/03 18:49)

11/03 19:20, , 8F
三個欄位中的都是ImageButton嗎?
11/03 19:20, 8F

11/03 23:26, , 9F
回D大:是的! ^^"
11/03 23:26, 9F

11/04 01:35, , 10F
我剛剛試過了 換頁時確實如L大說的會觸發RowCommand
11/04 01:35, 10F

11/04 01:35, , 11F
所以你要先判斷e.CommandSource是不是ImageButton
11/04 01:35, 11F

11/04 01:38, , 12F
e.CommandSource.GetType() == typeof(ImageButton)
11/04 01:38, 12F

11/04 01:39, , 13F
這樣就會執行正常了
11/04 01:39, 13F

11/04 18:37, , 14F
感謝L大與D大,成功了!謝謝! ^^"
11/04 18:37, 14F
文章代碼(AID): #1CqDCR5i (C_Sharp)
文章代碼(AID): #1CqDCR5i (C_Sharp)