我想用DataGridView做录入,但是其中有一列是用可以选择的,并且有他自己的数据源,这个怎么弄?
解决方案 »
- 请教一个Linq问题!
- 新手求教
- C#如何生成多个随机密码
- 请问如何把这个时间(2009年01月21日10:43:9) 转换成datetime类型,又如何把这个时间2009-01-21 10:44:42 通过转换让之显示成 2009-01月21日10:44:4
- c#编程中发现了Button一个很奇怪的问题!似乎是控件本身BUG!
- dataset读取XML
- 请教哪位高手 如何取到动态生成checkbox的值
- 留言板的问题,请高手帮忙.
- 如何在C#程序中显示网页
- 如何得到DataSet的Null值啊?
- 关于写华为信息机WebService,接口不能初始化,老是报-1002错误!!!
- 怎么把数据库的数据绑定到teechart?
DataGridViewComboBoxColumn co_sex = new DataGridViewComboBoxColumn();
co_sex.DataPropertyName = "sSex";
co_sex.HeaderText = "性别";
DataTable dt = new DataTable();
dt.Columns.Add("sexname");
dt.Columns.Add("sexvalue");
DataRow dr = dt.NewRow();
dr[0] = "男";
dr[1] = "男";
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1[0] = "女";
dr1[1] = "女";
dt.Rows.Add(dr1);
co_sex.DataSource = dt;
co_sex.ValueMember = "sexvalue";
co_sex.DisplayMember = "sexname";
this.DataGridView1.Columns.Add(co_sex);
红色的部分可以换成你自己的数据源
rr.Name = "combobox";
rr.DataSource=你从数据库获取的数据;
rr.DisplayMember="字段";
rr.ValueMember="字段2"
rr.Items.Add("ss");//也可以自己添加的数据
rr.Items.Add("hh");//也可以自己添加的数据
this.dataGridView1.Columns.Add(rr);
dataGridView1.DataSource = DBAccess.GetOrderDetails(orderID);
dataGridView1.DataMember = "OrderDetails";
dataGridView1.Columns[0].ReadOnly = true; DataGridViewComboBoxColumn ProductID = new DataGridViewComboBoxColumn();
ProductID.DisplayIndex = 1;
ProductID.HeaderText = "ProductName";
ProductID.DataPropertyName = "ProductID";
ProductID.DataSource = DBAccess.GetProducts().Tables[0];
ProductID.DisplayMember = "ProductName";
ProductID.ValueMember = "ProductID";
ProductID.Name = "ProductID";
dataGridView1.Columns.Add(ProductID);
前台代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Height="234px"
Width="537px">
<Columns>
<asp:TemplateField HeaderText="源表">
<ItemTemplate>
<asp:DropDownList ID="ddls2" DataTextField="column_name" DataSource='<%# ColumnDataSource() %>' runat="server" AppendDataBoundItems="True">
<asp:ListItem Value="0">忽略</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="目的表">
<ItemTemplate>
<%# Eval("ms") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="字段">
<ItemTemplate>
<%# Eval("col") %>
<asp:Label ID="lbcol" runat="server" Text='<%# Eval("col") %>' Visible="False"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="字段类型">
<ItemTemplate>
<%# Eval("type") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle HorizontalAlign="Center" />
</asp:GridView>
后台代码:
#region "查询表的列名"
public DataSet ColumnDataSource()
{
string strConn;
strConn = "select name from syscolumns where id =( select id from sysobjects where name='test')";
SqlConnection conn = new SqlConnection("uid=sa;pwd=;DataBase="+DropDownList2.SelectedItem.Text+";Server=(local);");
SqlDataAdapter myCommand = new SqlDataAdapter(strConn, conn);
DataSet myDataSet = new DataSet();
myCommand.Fill(myDataSet);
return myDataSet;
}
#endregion
DataGridViewComboBoxColumn co_sex = new DataGridViewComboBoxColumn();
co_sex.DataPropertyName = "sSex";
co_sex.HeaderText = "性别";
DataTable dt = new DataTable();
dt.Columns.Add("sexname");
dt.Columns.Add("sexvalue");
DataRow dr = dt.NewRow();
dr[0] = "男";
dr[1] = "男";
dt.Rows.Add(dr);
DataRow dr1 = dt.NewRow();
dr1[0] = "女";
dr1[1] = "女";
dt.Rows.Add(dr1);
co_sex.DataSource = dt;
co_sex.ValueMember = "sexvalue";
co_sex.DisplayMember = "sexname";
this.DataGridView1.Columns.Add(co_sex);
红色的部分可以换成你自己的数据源
修改 删除 举报 引用 回复
加为好友
发送私信
在线聊天
Guyschaos
贫僧已皈依佛门,法号庆缘!
等级:
可用分等级:贫农
总技术分:10439
总技术分排名:2043 发表于:2008-06-27 09:03:592楼 得分:9
DataGridViewComboBoxColumn rr = new DataGridViewComboBoxColumn();
rr.Name = "combobox";
rr.DataSource=你从数据库获取的数据;
rr.DisplayMember="字段";
rr.ValueMember="字段2"
rr.Items.Add("ss");//也可以自己添加的数据
rr.Items.Add("hh");//也可以自己添加的数据
this.dataGridView1.Columns.Add(rr);