标题:如何动态隐藏gridview中符合设定条件的一列
只看楼主
zkai0813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-20
结帖率:66.67%
已结贴  问题点数:5 回复次数:14 
如何动态隐藏gridview中符合设定条件的一列
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (GridView1.Columns[11].ToString() == "完成")
            {
                GridView1.Columns[16].Visible = false;
            }         
    }
11列是事件状态列 16列是删除列(用的是linkbutton)
我想根据完成状态的情况来显示与隐藏删除这一列 状态是完成时就隐藏删除列
上面的代码要怎么改呢? 帮帮忙
搜索更多相关主题的帖子: gridview 动态 条件 隐藏 
2010-06-03 14:24
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
得分:5 
第11列是不是个模板列  如果是:“完成”是什么控件?LinkButton,还是Button?
你看看这样子行不行?“完成”是个LinkButton,在模板列中:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {  
            string comStr = ((LinkButton)e.Row.Cells[11].FindControl("完成的ID值")).Text.ToString();
            if (comStr == "完成")
            {
                e.Row.Cells[16].Visible = false;
            }
        }
2010-06-03 15:23
zkai0813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-20
得分:0 
"完成"的状态时隔dropdownlist控件
2010-06-03 15:45
o嘟嘟o
Rank: 1
来 自:河北
等 级:新手上路
帖 子:5
专家分:0
注 册:2010-5-25
得分:0 
路过
2010-06-03 15:53
zkai0813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-20
得分:0 
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 141:        if (e.Row.RowType == DataControlRowType.DataRow)
行 142:        {
行 143:            string constr = ((DropDownList)e.Row.Cells[10].FindControl("hidEnventState")).Text.ToString();
行 144:            if (constr == "完成")
行 145:            {
 
我试了你写的代码 报错了 帮我看下
2010-06-03 15:54
zkai0813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-20
得分:0 
回复 2楼 hhy420459674
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 141:        if (e.Row.RowType == DataControlRowType.DataRow)
行 142:        {
行 143:            string constr = ((DropDownList)e.Row.Cells[10].FindControl("hidEnventState")).Text.ToString();
行 144:            if (constr == "完成")
行 145:            {

我试了你写的代码 报错了 帮我看下
2010-06-03 16:10
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
得分:0 
回复 6楼 zkai0813
不会错  我试过了  我想你的错误应该是其他的吧....
你把那句代码改成:((DropDownList)e.Row.Cells[10].FindControl("hidEnventState")).SelectedValue
其实是一样的  只是让你试试看有没有错!我试过了
2010-06-03 16:31
hhy420459674
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:203
专家分:179
注 册:2010-4-9
得分:0 
回复 6楼 zkai0813
还有  刚刚我试过你写的代码了  是可以实现的啊?
而且比我写的那个还好些  我写的那个是有局限性的...没有考虑完整的!
就用你写的那个吧!我试过没问题的!!
2010-06-03 16:41
zkai0813
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-5-20
得分:0 
回复 7楼 hhy420459674
<asp:TemplateField HeaderText="事件状态">
                                <EditItemTemplate>
                                    <asp:DropDownList ID="d1" runat="server" DataSource='<% #drbind() %>' DataValueField="EnventState"
                                        DataTextField="EnventState">
                                    </asp:DropDownList>
                                    <input id="hidEnventState" type="hidden" value='<%# Eval("EnventState") %>' runat="server" />
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("EnventState") %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
这是我要依据的下拉框的值来决定隐藏删除列与否
2010-06-03 16:44
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8074
专家分:6657
注 册:2005-11-7
得分:0 
我是该说点什么呢,还是该装作什么都没看见路过呢?

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-06-03 16:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-309157-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.265060 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved