看板 C_Sharp 關於我們 聯絡資訊
※ 引述《epola (Epola)》之銘言: : 請問各位高手, : 最近我新學GridView遇到一個問題, : 當在GridView中加入Button時 (commandname沒輸入) : 由設計頁面去點選Button時,並不會主動生成 : void xxxGridView_RowCommand(Object sender, GridViewCommandEventArgs e){略} : 因為我需要取得目前取得的button屬於哪一個row : 卻都會產生 : void xxxGridView_SelectedIndexChanged(Object sender, EventArgs e) 不論是在 GridView 裏頭的哪一個按鈕,也不論是在 GridView 的哪一個部分,只要 是在 GridView 上頭點兩下,產生的預設事件程序就是 SelectedIndexChanged 事件。 : 而若是自行加上 : <asp:GirdView ID="GirdView1" runat="server" OnRowCommand="xxxGridView_RowCommand"> : </asp:GirdView> : 還是會出現錯誤訊息。 : 不知道是否有哪個步驟出現錯誤 ? 建議您這麼做試試看: 1. 先點一下設計畫面的 GridView 2. 再點一下右下角的「屬性」視窗的「事件」按鈕(圖面像一道閃電)。 (按下功能鍵 F4 可顯示「屬性」視窗) 3. 在事件表中,點兩下 RowCommand 的輸入方塊,這樣就可產生出事件處理程序。 另外,你的按鈕的 CommandName 最好還是設一下比較好,因為,切換頁次、 排序、編輯、更新、取消等等這些 GridView 的 LinkButton 也都會觸發 RowCommand 事件,可透過 CommandName 分辨是否是你的按鈕 Clicked。 最後,如何找到「哪一個Row」的程式寫法如下,一併提供給您參考,希望會有幫助: :) protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "btnXXX") { // iRow 即是該列的編號 int iRow = Convert.ToInt32(e.CommandArgument); // string sData = GridView1.Rows[iRow].Cells[1].Text // ... } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.100.238
TeemingVoid:PO出後才發現兩人同時回文,唉,我打字太慢了... :p 01/20 00:34
TeemingVoid:DeepSix的內容比較簡明扼要! ^^ 01/20 00:36
TeemingVoid:因為還差 7 篇文章才能在某一版推文, 01/20 00:39
TeemingVoid:內容也有多補充一點,所以,我就厚臉皮不刪文 ;) 01/20 00:40
brian90191:推這一篇,我本來要回跟你一模一樣的東西 ~"~ 01/20 00:47
brian90191:要觸發gridview的自訂按鈕最好還是設定一下CommandName 01/20 00:48
brian90191:也可以參考一下MSDN的這篇文章 01/20 00:50
brian90191:http://tinyurl.com/7g3jtaw 01/20 00:50
kevin888:簡單明了 01/20 10:33
epola:謝謝各位的說明,原來是我忘了增加事件 ! 01/23 23:57
glennchen:QQQQQQQQQQQQQQQQ 01/24 00:34