XML创建Table,设置属性为下拉框??100(不够可加分)

quhua 2003-09-14 02:04:45

第1步. 我自动创建XML,属性包括(FactoryName,ServerAddress,DBName,DBType).


DataTable theTable=new DataTable ("c:\MyXML.xml");
DataColumn theColumn1=new DataColumn ();
theColumn1.DataType = System.Type.GetType("System.String");
theColumn1.ColumnName = "FactoryName";
theTable.Columns.Add(theColumn1);

DataColumn theColumn2=new DataColumn ();
theColumn2.DataType = System.Type.GetType("System.String");
theColumn2.ColumnName = "ServerAddress";
theTable.Columns.Add(theColumn2);

DataColumn theColumn3=new DataColumn ();
theColumn3.DataType = System.Type.GetType("System.String");
theColumn3.ColumnName = "DBName";
theTable.Columns.Add(theColumn3);

DataColumn theColumn4=new DataColumn ();
theColumn4.DataType = System.Type.GetType("System.String");
theColumn4.ColumnName = "DBType";
theTable.Columns.Add(theColumn4);

return theTable;
第2步 在DdataGrid上显示.
问题: 我想让属性DBType(数据库类型)成为下拉框显示,可选择SQL Server 与
ORACLE. 请问下拉框怎样设置显示.


...全文
150 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
quhua 2003-09-15
  • 打赏
  • 举报
回复
问题解决!谢谢各位帮助!
xrll 2003-09-15
  • 打赏
  • 举报
回复
你的DropDownList如果不是动态添加的,只需在DataGrid的模板列中:
<asp:templatecolumn><headertemplate>redirect</headertemplate>
<itemtemplate>
<asp:DropDownList runat="server"
DataSource='<%# GetDataTable1() %>'
DataTextField="redirect"
SelectedValue='<%# DataBinder.Eval(Container.DataItem, "redirect") %>'
id="chk" />
</itemtemplate>
</asp:templatecolumn>
效果如http://218.84.107.5/p.aspx
xrll 2003-09-15
  • 打赏
  • 举报
回复
你的DropDownList如果不是动态添加的,只需在DataGrid的模板列中:
<asp:templatecolumn><headertemplate>redirect</headertemplate>
<itemtemplate>
<asp:DropDownList runat="server"
DataSource='<%# GetDataTable1() %>'
DataTextField="redirect"
SelectedValue='<%# DataBinder.Eval(Container.DataItem, "redirect") %>'
id="chk" />
</itemtemplate>
</asp:templatecolumn>
效果如http://218.84.107.5/p.aspx
xrll 2003-09-15
  • 打赏
  • 举报
回复
你好象将这个问题复杂化了,将规整的xml文件变成数据表只需:
public DataTable GetDataTable1(){
sPath = Server.MapPath("MyXML.xml") ;
try
{
ds = new DataSet();
fout = new FileStream(sPath,FileMode.Open, FileAccess.Read,FileShare.ReadWrite) ;
ds.ReadXml(fout, XmlReadMode.InferSchema);
fout.Close();
}
catch (Exception edd)
{
Label1.Text="不能读出XML文件,因为 "+edd.ToString() ;
}
DataTable dt = ds.Tables[0];
return dt;
}
wacle 2003-09-15
  • 打赏
  • 举报
回复
将DataGrid的数据库类型那一列转换为摸板列,然后拖一个Dropdownlist到ItemTemplate中去,在DataGrid绑定后,再处理这个dropdownlist的绑定
foreach(DataGridItem item in dgrd.Items)
{
...
DropDownList drop=(DropDownList)item.FindControl("dropDBType");
drop.DataSource=ds.Tables[0].DefaultView;
drop.DataTextField="数据库类型";
drop.DataBind();
}
quhua 2003-09-15
  • 打赏
  • 举报
回复
抱歉!昨天拉肚子,早早下线.我现在将代码贴出,希望各位帮助!

private DataTable MakeTable() //XML无记录时,显示
{
DataTable theTable=new DataTable ("XMLDBConfig");
DataColumn theColumn1=new DataColumn ();
theColumn1.DataType = System.Type.GetType("System.String");
theColumn1.ColumnName = "FactoryName";
theTable.Columns.Add(theColumn1);

DataColumn theColumn2=new DataColumn ();
theColumn2.DataType = System.Type.GetType("System.String");
theColumn2.ColumnName = "ServerAddress";
theTable.Columns.Add(theColumn2);

DataColumn theColumn3=new DataColumn ();
theColumn3.DataType = System.Type.GetType("System.String");
theColumn3.ColumnName = "DBName";
theTable.Columns.Add(theColumn3);

DataColumn theColumn4=new DataColumn ();
theColumn4.DataType = System.Type.GetType("System.String");
theColumn4.ColumnName = "DBType";
theTable.Columns.Add(theColumn4);

return theTable;
}


private void ShowTables( )
{
DataSet ds=new DataSet ();
DataView dv;

ds.Tables.Add( MakeTable());
dv=new DataView(ds.Tables [0]);

ds.Tables[0].Columns [0].ColumnName ="工厂名称";
ds.Tables[0].Columns [1].ColumnName ="服务器地址";
ds.Tables[0].Columns [2].ColumnName ="数据库名称";
ds.Tables[0].Columns [3].ColumnName ="数据库类型";

DBGrid.DataSource =dv;
DBGrid.DataBind ();
}

panyee 2003-09-14
  • 打赏
  • 举报
回复
你的xml贴一段出来
quhua 2003-09-14
  • 打赏
  • 举报
回复
如何设置?
xjjhappy_88 2003-09-14
  • 打赏
  • 举报
回复
可以设置DataColumn的属性

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧