[.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