我现在已经有一个datatable数据表,有很多的列,我现在想在datagridview中只显示其中的两列,而不想显示其它的.所以我想手工绑定这两列的数据源,请问该如何操作?能提供源代码最好.(我不想一下子绑定整个表,而把其它列隐藏的办法)

解决方案 »

  1.   

    在datagridview中加入这两列,把这两列的DATAPROPERTYNAME设为你要显示的数据列的名字.在绑定数据源之前加上这条代码:
    DataGridView1.AutoGenerateColumns=false;
      

  2.   


    //datagridview列的绑定
    this.custIDColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
    this.custIDColumn.DataPropertyName = "CustID";
    this.custIDColumn.HeaderText = "客户编号";
    this.custIDColumn.Name = "custIDColumn";
    其中CustID为datatable中的列名
      

  3.   

    DataTable table2=datatable.DefaultView.ToTable(false, "column1", "column2");
    绑定table2就OK。20分。谢谢
      

  4.   

    this.dataGridView1.Width = 889;
                this.dataGridView1.ColumnCount = 7;
                this.dataGridView1.Columns[0].Name = "序号";
                this.dataGridView1.Columns[1].Name = "编码";
                this.dataGridView1.Columns[2].Name = "名称";
                this.dataGridView1.Columns[3].Name = "在线";
                this.dataGridView1.Columns[4].Name = "登录时间";
                this.dataGridView1.Columns[5].Name = "最后访问时间";
                this.dataGridView1.Columns[6].Name = "服务器运行描述";
                this.dataGridView1.Columns[0].Width = 75;
                this.dataGridView1.Columns[1].Width = 80;
                this.dataGridView1.Columns[2].Width = 120;
                this.dataGridView1.Columns[3].Width = 75;
                this.dataGridView1.Columns[4].Width = 150;
                this.dataGridView1.Columns[5].Width = 150;
                this.dataGridView1.Columns[6].Width = 200;
    string[] row = new string[] {'1','11','111','1111','111','1111','ddd');
    this.dataGridView1.Rows.Add(row);如果是webform更简单
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
        <asp:TemplateField HeaderText="Title" > 
        <ItemTemplate>
        <%# Eval("Title") %>
        </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField HeaderText="名称" DataField="Title" />
        </Columns>
        </asp:GridView>在后台,
    直接this.GridView1.DataSource=ds;
    this.GridView1.DataBind();就行
      

  5.   

    你可以在用同样的方法得到一个你希望显示两列的datatable,绑定上去,或者你在用你手上的那个直接绑定,然后让你不希望显示的列隐藏就行了,就是设置gridview的COLUMN中某些为VISIABLE可以了//
      

  6.   

                DataGridViewTextBoxColumn productPartName = new DataGridViewTextBoxColumn();
                productPartName.DataPropertyName = "Name";//SQL语句得到的列名,可从集合中获得
                  productPartName.HeaderText = "名称";//列头显示的汉字
                  productPartName.Width = 120;
                productPartName.Frozen = true;
                dataGridViewProductPart.Columns.Add(productPartName);//最后一定要添加进去
                 这样就添加了一列。最后,你就指定原来的那个数据元就行了。就只显示添加的这2列。
      

  7.   


     cmd = new SqlCommand("SELECT ID, 简码, 编码,项目类别, 项目名称, 预设单价,技师服务 FROM 项目信息 Order by 项目名称");                SqlDataAdapter SDA = new SqlDataAdapter(cmd.CommandText, con);
                    SDA.Fill(AllObject_DataTable);
                    AllObject_BindingSource.DataSource = AllObject_DataTable;
                    this.dgvAllPrj.DataSource = AllObject_BindingSource;
                    this.dgvAllPrj.Columns["ID"].Visible = false;
                    this.dgvAllPrj.Columns["简码"].Visible = false;
                    this.dgvAllPrj.Columns["编码"].Visible = false;
    //这两列隐藏
                    this.dgvAllPrj.Columns["项目类别"].Visible = false;
                    this.dgvAllPrj.Columns["项目名称"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    this.dgvAllPrj.Columns["预设单价"].Width = 90;
      

  8.   

    this.dataGridView1.AutoGenerateColumns = false;
                           this.dataGridView1.ColumnCount = 120;
                           this.dataGridView1.DataSource = MyDataSet1.Tables["t_order"];
                            //this.dataGridView1.ColumnHeadersHeight = 200;
                           this.dataGridView1.Columns[0].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["fcod"].ToString();
                           this.dataGridView1.Columns[0].HeaderText = "开台单号";
                           this.dataGridView1.Columns[0].Width = 120;
                           this.dataGridView1.Columns[0].Name = "fcod";
                           
                           this.dataGridView1.Columns[1].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["ftablecod"].ToString();
                           this.dataGridView1.Columns[2].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["ftabledes"].ToString();
                           this.dataGridView1.Columns[3].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["frs"].ToString();
                           this.dataGridView1.Columns[4].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["fhandcode"].ToString();
                           this.dataGridView1.Columns[5].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["ftime"].ToString();
                           this.dataGridView1.Columns[6].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["foperades"].ToString();
                           this.dataGridView1.Columns[7].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["ffwydes"].ToString();
                           this.dataGridView1.Columns[8].DataPropertyName = MyDataSet1.Tables["t_order"].Columns["fid"].ToString();