Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将嵌套XML绑定到复选框列表_C#_Asp.net_Xml - Fatal编程技术网

C# 将嵌套XML绑定到复选框列表

C# 将嵌套XML绑定到复选框列表,c#,asp.net,xml,C#,Asp.net,Xml,我有一个嵌套的xml文件,其中包含菜单和子菜单。我需要在页面加载时将其绑定到asp.net复选框控件 我正在尝试使用下面的C代码进行绑定 C#: DataSet ds = new DataSet(); try { //Reading the data from the XML file ds.ReadXml(HttpContext.Current.Server.MapPath("~/menu.xml")); DataView dataview = ds.Tables[

我有一个嵌套的
xml
文件,其中包含菜单和子菜单。我需要在页面加载时将其绑定到asp.net复选框控件

我正在尝试使用下面的C代码进行绑定

C#:

DataSet ds = new DataSet();
try
{

    //Reading the data from  the XML file
    ds.ReadXml(HttpContext.Current.Server.MapPath("~/menu.xml"));
    DataView dataview = ds.Tables[0].DefaultView; 
    BioCheckBoxList.DataSource = dataview ;
    BioCheckBoxList.DataBind();            
 }  
<menu>
  <menuItem text="Home" url="~/Default.aspx?id=e058511b-b7d9-4d39-b194-cf803014777" mid="08f360dc-   a9cf-4724-a595-66f7ca01c04e" predeficon="homeico" />
  <menuItem text="Bio" url="~/Default.aspx"  icon="~/common/theme/smoothadmin/img/cog.png">
    <subMenu>
      <menuItem text="Reg" url="~\Modules\Bio\Reg.aspx"/>
      <menuItem text="Mem" url="~\Modules\Bio\Mem.aspx"/>      
    </subMenu>
  </menuItem>

  <menuItem text="Por" url="~/Default.aspx?"  icon="~/common/theme/smoothadmin/img/cog.png">
    <subMenu>
      <menuItem text="General">
        <subMenu>
          <menuItem text="Make Appointment" url="~\Modules\Portals\Gen.aspx"/>          
        </subMenu>
      </menuItem>
    </subMenu>
  </menuItem>
</menu>
XML:

DataSet ds = new DataSet();
try
{

    //Reading the data from  the XML file
    ds.ReadXml(HttpContext.Current.Server.MapPath("~/menu.xml"));
    DataView dataview = ds.Tables[0].DefaultView; 
    BioCheckBoxList.DataSource = dataview ;
    BioCheckBoxList.DataBind();            
 }  
<menu>
  <menuItem text="Home" url="~/Default.aspx?id=e058511b-b7d9-4d39-b194-cf803014777" mid="08f360dc-   a9cf-4724-a595-66f7ca01c04e" predeficon="homeico" />
  <menuItem text="Bio" url="~/Default.aspx"  icon="~/common/theme/smoothadmin/img/cog.png">
    <subMenu>
      <menuItem text="Reg" url="~\Modules\Bio\Reg.aspx"/>
      <menuItem text="Mem" url="~\Modules\Bio\Mem.aspx"/>      
    </subMenu>
  </menuItem>

  <menuItem text="Por" url="~/Default.aspx?"  icon="~/common/theme/smoothadmin/img/cog.png">
    <subMenu>
      <menuItem text="General">
        <subMenu>
          <menuItem text="Make Appointment" url="~\Modules\Portals\Gen.aspx"/>          
        </subMenu>
      </menuItem>
    </subMenu>
  </menuItem>
</menu>

  • 使用站点地图而不是XML文件。请看这里:

  • 使用TreeView控件并将TreeView绑定到站点地图

  • TreeView中,将显示复选框属性设置为All


  • 您有什么问题?@jleroohep问题是我看不到节点名称,只看到System.Data.DataRowView。因此,复选框列表与显示System.Data.DataRowView的项目绑定。您必须为复选框列表设置“DataTextField”和“DataValueField”。而且我不知道复选框列表是否是菜单上的正确选项