[.NET] GridView 的 Button 顯示隱藏

作者: because25 (口苗)   2015-07-03 11:41:15
請輸入專案類型(網站專案或者應用程式專案):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
可是這樣是錯誤的,想請問哪裡想法有問題嗎? 謝謝~
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-07-03 12:06:00
你應該可以用e.Row.FindControl(id)找到那個按鈕吧~
作者: because25 (口苗)   2015-07-03 13:25:00
謝謝 剛剛試了一下沒作用@@我的Button雖然寫在TemplateField中但是使用CommandFie
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-07-03 15:56:00
沒作用是連錯誤訊息都沒有嗎 他找不到應該會報Null啊你如果需要用commandfield來操作gridview的預設新增編輯等等 可以參考這邊 http://goo.gl/yqWvnx在gridview的頭設定onrowdeleting onrowediting等等底下templatefield中再設定各個button的commandname應該就可以有一樣效果 commandfield記得是很難用
作者: fumizuki (矇面加菲獅)   2015-07-03 16:47:00
設定成樣版(TemplateField)就可以自訂Button並且自訂每列的各個控制項的Visible屬性Visible='<%# Eval("欄位") = Session("id") %>'如果是寫在後端程式中,必須要判斷e.Row.RowType及RowState ,比較麻煩
作者: because25 (口苗)   2015-07-06 10:22:00
原本做法沒錯,重新偵錯就好了@@RowDataBound事件裡e.Row.Cells(0).Enabled = "False"如果是用 Visible 屬性,Gridview欄位會移位
作者: fumizuki (矇面加菲獅)   2015-07-06 20:06:00
Cell.Visible = False 不輸出至用戶端 所以會少一個格子Button.Visible = False 只有按鈕不會輸入 格子還在
作者: because25 (口苗)   2015-07-07 10:36:00
謝謝~指教因為e.Row是呼叫不出Button,所以只能針對Cell我做出來還有點誤打誤撞@@在TemplateField中建立Button、CommandName="Delete"所以這個Button是屬於GRIDVIEW command的一種但卻不能呼叫

Links booklink

Contact Us: admin [ a t ] ucptt.com