datagridview手动绑定列数据源 我现在已经有一个datatable数据表,有很多的列,我现在想在datagridview中只显示其中的两列,而不想显示其它的.所以我想手工绑定这两列的数据源,请问该如何操作?能提供源代码最好.(我不想一下子绑定整个表,而把其它列隐藏的办法) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在datagridview中加入这两列,把这两列的DATAPROPERTYNAME设为你要显示的数据列的名字.在绑定数据源之前加上这条代码:DataGridView1.AutoGenerateColumns=false; //datagridview列的绑定this.custIDColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;this.custIDColumn.DataPropertyName = "CustID";this.custIDColumn.HeaderText = "客户编号";this.custIDColumn.Name = "custIDColumn";其中CustID为datatable中的列名 DataTable table2=datatable.DefaultView.ToTable(false, "column1", "column2");绑定table2就OK。20分。谢谢 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();就行 你可以在用同样的方法得到一个你希望显示两列的datatable,绑定上去,或者你在用你手上的那个直接绑定,然后让你不希望显示的列隐藏就行了,就是设置gridview的COLUMN中某些为VISIABLE可以了// DataGridViewTextBoxColumn productPartName = new DataGridViewTextBoxColumn(); productPartName.DataPropertyName = "Name";//SQL语句得到的列名,可从集合中获得 productPartName.HeaderText = "名称";//列头显示的汉字 productPartName.Width = 120; productPartName.Frozen = true; dataGridViewProductPart.Columns.Add(productPartName);//最后一定要添加进去 这样就添加了一列。最后,你就指定原来的那个数据元就行了。就只显示添加的这2列。 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; 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(); 利用反射动态创建对象,并为属性赋值 添加控件后编译出错 如何屏蔽MDI主窗体的SCOLLBAR Thread.Aort() 结束挂起的线程总会抛出异常,如何解决? 如何從Form2中傳數據到Form1中? 请问如何判断OleDbDataReader、DataTable中是否包含某个字段? Datagrid 更新问题 请大家指导和分享。 高分求都对pop3邮件进行解 码。。。。 有谁在研究.net framework吗?给点建议吧,或者有什么好书?" NET实用设计模式:工厂模式(Factory)? c# winform treeview树控件问题
DataGridView1.AutoGenerateColumns=false;
//datagridview列的绑定
this.custIDColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells;
this.custIDColumn.DataPropertyName = "CustID";
this.custIDColumn.HeaderText = "客户编号";
this.custIDColumn.Name = "custIDColumn";
其中CustID为datatable中的列名
绑定table2就OK。20分。谢谢
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();就行
productPartName.DataPropertyName = "Name";//SQL语句得到的列名,可从集合中获得
productPartName.HeaderText = "名称";//列头显示的汉字
productPartName.Width = 120;
productPartName.Frozen = true;
dataGridViewProductPart.Columns.Add(productPartName);//最后一定要添加进去
这样就添加了一列。最后,你就指定原来的那个数据元就行了。就只显示添加的这2列。
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;
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();