[.NET] GridView 的 Button 顯示隱藏

看板Visual_Basic作者 (口苗)時間9年前 (2015/07/03 11:41), 編輯推噓3(3022)
留言25則, 3人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案):ASP.NET (VB) VS2010 大家好,想請教 我欲在GridView中的Button(刪除功能) 能針對登入時的id和GridView每一列的id做比對 然後每列前的Button控制項的Visible屬性作修改(預設False) 我Button是寫在TemplateField中 然後在事件RowDataBound裡設條件 If Trim(e.Row.Cells(1).Text) = Trim(Session("id")) Then e.Row.Cells(0).Visible = False End If 可是這樣是錯誤的,想請問哪裡想法有問題嗎? 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.75.113.166 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1435894878.A.328.html

07/03 12:06, , 1F
你應該可以用e.Row.FindControl(id)找到那個按鈕吧~
07/03 12:06, 1F

07/03 13:25, , 2F
謝謝 剛剛試了一下沒作用@@
07/03 13:25, 2F

07/03 13:57, , 3F
我的Button雖然寫在TemplateField中但是使用CommandFie
07/03 13:57, 3F

07/03 15:56, , 4F
沒作用是連錯誤訊息都沒有嗎 他找不到應該會報Null啊
07/03 15:56, 4F

07/03 16:38, , 5F
你如果需要用commandfield來操作gridview的預設新增
07/03 16:38, 5F

07/03 16:38, , 6F
編輯等等 可以參考這邊 http://goo.gl/yqWvnx
07/03 16:38, 6F

07/03 16:40, , 7F
在gridview的頭設定onrowdeleting onrowediting等等
07/03 16:40, 7F

07/03 16:40, , 8F
底下templatefield中再設定各個button的commandname
07/03 16:40, 8F

07/03 16:41, , 9F
應該就可以有一樣效果 commandfield記得是很難用
07/03 16:41, 9F

07/03 16:47, , 10F
設定成樣版(TemplateField)就可以自訂Button
07/03 16:47, 10F

07/03 16:48, , 11F
並且自訂每列的各個控制項的Visible屬性
07/03 16:48, 11F

07/03 16:50, , 12F
Visible='<%# Eval("欄位") = Session("id") %>'
07/03 16:50, 12F

07/03 16:51, , 13F
如果是寫在後端程式中,必須要判斷e.Row.RowType
07/03 16:51, 13F

07/03 16:51, , 14F
及RowState ,比較麻煩
07/03 16:51, 14F

07/06 10:22, , 15F
原本做法沒錯,重新偵錯就好了@@
07/06 10:22, 15F

07/06 10:23, , 16F
RowDataBound事件裡e.Row.Cells(0).Enabled = "False"
07/06 10:23, 16F

07/06 10:24, , 17F
如果是用 Visible 屬性,Gridview欄位會移位
07/06 10:24, 17F

07/06 20:06, , 18F
Cell.Visible = False 不輸出至用戶端 所以會少一個格子
07/06 20:06, 18F

07/06 20:07, , 19F
Button.Visible = False 只有按鈕不會輸入 格子還在
07/06 20:07, 19F

07/07 10:36, , 20F
謝謝~指教
07/07 10:36, 20F

07/07 10:37, , 21F
因為e.Row是呼叫不出Button,所以只能針對Cell
07/07 10:37, 21F

07/07 10:38, , 22F
我做出來還有點誤打誤撞@@
07/07 10:38, 22F

07/07 10:39, , 23F
在TemplateField中建立Button、CommandName="Delete"
07/07 10:39, 23F

07/07 10:40, , 24F
所以這個Button是屬於GRIDVIEW command的一種但卻不能
07/07 10:40, 24F

07/07 10:40, , 25F
呼叫
07/07 10:40, 25F
文章代碼(AID): #1LbWHUCe (Visual_Basic)