获取采用模板列的GridView中的隐藏列中的值

   好像是在用.NET 2003时,当设置GridView的某一列的Visible=false, 在获取输入时,仍然能够获取到GridView其他隐藏列的值,现在我用的是VS2010,用同样的方法已经获取不到隐藏列的值了,貌似是新的GridView的Visible设置为false时,数据就不一起绑定到前台。采取下面的方法可以解决这个问题。

   在创建行的时候,将不需要显示的单元格隐藏,即在RowCreated事件中设置单元格隐藏



    protected void grvTest2_RowCreated(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow) //我这里是用的自定义表头,如果是自动生成的表头,需要再判断一下
        {
            ///在绑定时隐藏不需要的列
            //注:此种方式隐藏可以获得隐藏列的值
               e.Row.Cells[1].Visible = false;
        } 
    }



PS:当在GridView即设置了绑定域(BoundField)又设置了模板列,可以使用以下方法获得模板列中的值

    如果BoundField的值为“”则所获得的是  需要过滤掉

 

protected void grvTest2_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
           ArrayList alData = new ArrayList()
        for(int i=0;i<grvTest2.Columns.Count; i++)
            string x = "TextBox" +(i+1).ToString();//这里只取第一列的值
            if (grvTest2.Rows[e.RowIndex].FindControl(x) != null)
            {
                alData.Add(((TextBox)grvTest2.Rows[e.RowIndex].FindControl(x)).Text.ToString().Trim());
            }
            else
            {
                //过滤掉从不可编辑列得来的 
                alData.Add(grvTest2.Rows[e.RowIndex].Cells[i + 2].Text.Equals(" ") ? string.Empty : grvTest2.Rows[e.RowIndex].Cells[i ].Text.ToString());
            }
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值