一个很简单的xml文件
<?xml version="1.0" encoding="gb2312" ?>
<jobItems name ="job">
<item>总经理</item>
<item>副总经理</item>
</jobItems>现在要用dropdownlist绑定这个xml文件,然后让dropdownlist里面可以选择“总经理”和“副经理”就可以了,希望能够用两种方式实现:
1.XMLDataSource控件,如何设置XPath?
2.直接写在.cs文件中,用程序代码,就像连接数据库那样
各位大虾能否各给一个DEMO看看
<?xml version="1.0" encoding="gb2312" ?>
<jobItems name ="job">
<item>总经理</item>
<item>副总经理</item>
</jobItems>现在要用dropdownlist绑定这个xml文件,然后让dropdownlist里面可以选择“总经理”和“副经理”就可以了,希望能够用两种方式实现:
1.XMLDataSource控件,如何设置XPath?
2.直接写在.cs文件中,用程序代码,就像连接数据库那样
各位大虾能否各给一个DEMO看看
解决方案 »
- 这是VB编写的。。。如何用C#来写。。。
- 请教关于AJAX页面处理DataSet返回的GetXML
- RadioButtonList求代码
- 用File Field控件必须选择一个文件,能不能不选择文件,直接自己在弹出的选择对话框中输入文件名.
- 怎样把DataRow[]绑定到DataGrid?急问,在线等
- 急!如何解除vss控制
- 大虾们,DIV+CSS真的比Table要好用吗?
- 研究datagrid的弟兄帮帮我,"CSDN上最强大的Asp.Net Grid的演示"这个贴子谁收藏了?我找不到了
- 水晶报表,子报表显示的问题
- 我想做个IP过滤功能!
- 网页错误提示:不能运行指定的宏
- 一个关键类的简单错误,高手指点一下[图]
XmlDataDocument xmlDoc = new XmlDataDocument();
xmlDoc.Load(xmlPath);
XmlNodeList nodeList = xmlDoc.DocumentElement.ChildNodes;
foreach (XmlNode node in nodeList)
{
this.DropDownList1.Items.Add(new ListItem(node.InnerText, node.InnerText));
}
ds.ReadXml(Server.MapPath("yourxml.xml"));
dropdownlist.DataSource = ds;
dropdownlist.DataBind();//如果有多个节点,则需要指定TextField和ValueField.
public static void ListBinding(Control ConName)
{
XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Request.PhysicalApplicationPath+@"Xml\Purpose.xml");
XmlNodeList t = doc.SelectNodes("//purposes/name");
XmlNodeList v = doc.SelectNodes("//purposes/code");
ArrayList Ilst=new ArrayList();
Ilst.Add(new ListItem("请选择目的","0"));
for (int i = 0; i <t.Count; i++)
{
Ilst.Add(new ListItem(t[i].InnerText,v[i].InnerText));
} DataTable dt = new DataTable();
DataColumn dc = new DataColumn("text",typeof(System.String));
dt.Columns.Add(dc);
dc = new DataColumn("value",typeof(System.String));
dt.Columns.Add(dc);
for(int i=0;i<Ilst.Count;i++)
{
DataRow dr = dt.NewRow();
dr["text"] = String.Format(((ListItem)Ilst[i]).Text);
dr["value"] = String.Format(((ListItem)Ilst[i]).Value);
dt.Rows.Add(dr);
}
if (ConName is DropDownList)
{
((DropDownList)ConName).DataTextField = "text";
((DropDownList)ConName).DataValueField = "value";
((DropDownList)ConName).DataSource= dt;
((DropDownList)ConName).DataBind();
}
if (ConName is ListBox)
{
((ListBox)ConName).DataTextField = "text";
((ListBox)ConName).DataValueField = "value";
((ListBox)ConName).DataSource= dt;
((ListBox)ConName).DataBind();
}
dt.Dispose();
}
ds.ReadXml(Server.MapPath("urpath"));
string textField = ds.Tables[0].DefaultView.Table.Columns[0].ColumnName;
d1.DataSource = ds.Tables[0].DefaultView;
d1.DataTextField = textField;
d1.DataBind();这样就可以了,上面的绑定给写错了-_-!
你的xml文件中需要改成这样
<?xml version="1.0" encoding="gb2312"?>
<jobItems>
<item>总经理</item>
<item>副总经理</item>
</jobItems>
那个name属性需要去掉,否则直接通过dataset取的数据源会出问题.另外,这种xml绑定灵活性很差,建议使用xpath来实现复杂的xml查询绑定(或者自己构造XML操作类)