如何隐藏 DataGrid 自动生成的列中的 某一列比如我有个 DataGrid ,数据绑定方式是自动生成列,我想要隐藏其中一列,但这列的数据又是我需要的,所以不能采用不绑定的方式还有我试过用 this.dg_InStore.Columns[0].Visible = false;
的方式隐藏,系统提示报错, 用自动生成的方式绑定的grid 的 Columns.count是0

解决方案 »

  1.   

    可能是由于不是绑定列的原因。
      
    我的e-mail:[email protected],欢迎与我交流。
      

  2.   

    直接在前台detagrid里面你要绑定的那一列设置Visible
      

  3.   

    #region 动态创建datagrid模板列 public class MyDataGridTemplate : System.Web.UI.ITemplate
    {
    ListItemType _litType;
    object _objData;
     
    public MyDataGridTemplate(ListItemType litType, object objData)
    {
    _litType = litType;
    _objData = objData;
    } public void InstantiateIn(System.Web.UI.Control container)
    {
    Literal ltr = new Literal();
    ltr.DataBinding += new EventHandler(this.OnDataBinding); TextBox txt = new TextBox();
            
    switch(_litType)
    {
    case ListItemType.Header:
    ltr.Text = "<b>" + _objData.ToString() + "</b>";
    container.Controls.Add(ltr);
    break;
    case ListItemType.Item:
    ltr.Text = _objData.ToString();

    container.Controls.Add(ltr);
    break;
    case ListItemType.EditItem:
    container.Controls.Add(txt);
    break;
    case ListItemType.Footer:
    ltr.Text = "<i>" + _objData.ToString() + "</i>";
    container.Controls.Add(ltr);
    break;
    }
    }
    public void OnDataBinding(object sender, EventArgs e)
    {
    Literal l = (Literal) sender;//LiteralControl发送绑定请求
    DataGridItem container = (DataGridItem) l.NamingContainer;
    l.Text = ((DataRowView)container.DataItem)[l.Text].ToString();//绑定stuname字段
    }
    } #endregion
      

  4.   

    //创建动态模板列
    //------------------------------------------------+ for (int x = 0 ; x <= MasterDt.Columns.Count-1 ; x++)
    {
    TemplateColumn tc; tc = new TemplateColumn();
    tc.HeaderText = MasterDt.Columns[x].Caption;
    if (MasterDt.Columns[x].Caption == "UpDateUserID" || MasterDt.Columns[x].Caption == "UpDateRecordID")
    {
    //如果是编号列,则需要隐藏
    tc.Visible=false;
    }
    tc.ItemTemplate = new MyDataGridTemplate(ListItemType.Item,  MasterDt.Columns[x].Caption);//"<%# DataBinder.Eval(Container,\"DataItem." + MasterDt.Columns[x].Caption + "\")%>");
    dg_data.Columns.Add(tc);
    } //------------------------------------------------+
      

  5.   

    Visible=false不行。后期读数读不出来。
    在Datagrid绑定事件中,加上类似于这样的话(我这个是GridView1_RowDataBound,Datagrid也差不多。)
       e.Row.Cells(i).Style("display") = "none"