【问题标题】:Binding nested XML to CheckboxList将嵌套 XML 绑定到 CheckboxList
【发布时间】:2014-02-11 22:29:29
【问题描述】:

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

我正在尝试使用下面的 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();            
 }  

XML:

<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>

【问题讨论】:

  • 你的问题是什么?
  • @JleruOHeP 问题是我没有看到节点名称,而只有 System.Data.DataRowView。所以 checkboxList 与显示 System.Data.DataRowView 的项目绑定
  • 您必须为复选框列表设置“DataTextField”和“DataValueField”。而且我不确定复选框列表是否适合用于菜单

标签: c# asp.net xml


【解决方案1】:
  1. 使用 SiteMap 代替 XML 文件。见这里:Using-Menu-and-Sitemap-with-Master-page

  2. 使用 TreeView 控件并将 TreeView 绑定到 SiteMap。

  3. TreeView 中,ShowCheckBoxes 属性设置为 All

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    相关资源
    最近更新 更多