我用dataset的readxml()方法加载xml文件,并把它作为dropdownlist的数据源,代码是这样的
if(!Page.IsPostBack)
{
DataSet ds=new DataSet();
ds.ReadXml(Server.MapPath("Xml/CustomerType.xml"));
ddlType.DataSource=ds.Tables[0].DefaultView;
ddlType.DataTextField="name";
ddlType.DataValueField="id";
ddlType.DataBind();
ds.Clear();
ds.ReadXml(Server.MapPath("Xml/City.xml"));
ddlCity.DataSource=ds.Tables[0].DefaultView;
ddlCity.DataTextField="name";
ddlCity.DataValueField="id";
ddlCity.DataBind();
    }
问题在于:第一个dropdownlist可以正常显示,但是第二个dropdownlist ddlCity什么内容都没有
是什么原因呢?
谢谢

解决方案 »

  1.   

    ddlCity.DataSource=ds.Tables[1].DefaultView;
      

  2.   

    你跟踪一下看看现在的ds有几个table,如果是两个,那就是ds.table[1].defaultview
      

  3.   

    用ds.table[1].defaultview 提示:找不到table
    有办法吗?
    Help!
      

  4.   

    呵呵,应该是ds.Clear();出了问题了
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatadatasetclasscleartopic.htm
    通过移除所有表中的所有行来清除任何数据的 DataSet。
    这个方法是清除行,不是清除表了。Tables[0]还是一个空表,并不意味着它不存在了
    楼上的应该是卐解。DataSet.ReadXml 方法 
    将 XML 架构和数据读入 DataSet。
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatadatasetclassreadxmltopic.htm
      

  5.   

    那很奇怪啊,既然没有清除表,就应该有两个表,但是调试的时候显示是一个,或者是一个表,然后调用readxml()这个方法后,那就不应该为空啊?
      

  6.   

    将 ds.Clear() 改为 ds.Reset即可