首页 > 解决方案 > XML 解析错误:我不能在 DynamicPage 中嵌套 RowActionItem 吗?

问题描述

我使用 UI5 v1.52 并尝试<rowActionTemplate>在嵌套在sap.f.DynamicPage中的sap.ui.TreeTable中使用。我想知道为什么我收到一个XML 解析错误,让我猜想我不能在动态页面中使用控件 RowAction(Item)?

<mvc:View
  controllerName="de.heliosit.zd.m.clinicalorder.commission.controller.OrderItems"
  xmlns="sap.f"
  xmlns:m="sap.m"
  xmlns:mvc="sap.ui.core.mvc"
  xmlns:footerbar="sap.ushell.ui.footerbar"
  xmlns:tree="sap.ui.table"
  xmlns:core="sap.ui.core">
  <DynamicPage
    id="pageId"
    navButtonPress="onNavBack"
    showFooter="true">
    <header>
      <DynamicPageHeader />
    </header>
    <content>
      <tree:TreeTable
        id="orderItems"
        selectionMode="MultiToggle"
        enableColumnReordering="false"
        rowAction="1">
        <tree:columns>
          <tree:Column label="Name">
            <tree:template>
              <m:Text text="{Text}" wrapping="false" />
            </tree:template>
          </tree:Column>
          <tree:Column label="Catalog">
            <tree:template>
              <m:Text text="{CatalogId}" wrapping="false" />
            </tree:template>
          </tree:Column>
          </tree:Column>
        </tree:columns>
        <tree:rowActionTemplate>
          <tree:RowAction>
            <tree:RowActionItem
              type="Custom"
              icon="sap-icon://favorite"
              press="onManageFavoritePressed" />
            </tree:RowActionItem>
          </tree:RowAction>-->
        </tree:rowActionTemplate>
      </tree:TreeTable>
    </content>
    <footer>
      <m:OverflowToolbar>
        <m:ToolbarSpacer />
        <m:Button type="Accept" text="Accept" />
        <m:Button type="Reject" text="Reject" />
      </m:OverflowToolbar>
    </footer>
  </DynamicPage>
</mvc:View>

标签: xmlsapui5

解决方案


从技术上讲,将 DynamicPage 与 TreeTable 一起使用并没有错。话虽如此,XML 解析错误通常表明文档包含语法错误,这就是无法正确解析的原因。那些错误是..

  • 两次具有相同的结束标签

    </tree:Column>
    </tree:Column>
    
  • 不完整的注释语法

    <tree:RowAction>
    </tree:RowAction>-->
    

这是没有这些错误的相同视图:

<mvc:View
  controllerName="de.heliosit.zd.m.clinicalorder.commission.controller.OrderItems"
  xmlns="sap.f"
  xmlns:m="sap.m"
  xmlns:mvc="sap.ui.core.mvc"
  xmlns:footerbar="sap.ushell.ui.footerbar"
  xmlns:tree="sap.ui.table"
  xmlns:core="sap.ui.core">
  <DynamicPage
    id="pageId"
    navButtonPress="onNavBack"
    showFooter="true">
    <header>
      <DynamicPageHeader />
    </header>
    <content>
      <tree:TreeTable 
        id="orderItems"
        selectionMode="MultiToggle"
        enableColumnReordering="false"
        rowAction="1">
        <tree:columns>
          <tree:Column label="Name">
            <tree:template>
              <m:Text text="{Text}" wrapping="false" />
            </tree:template>
          </tree:Column>
          <tree:Column label="Catalog">
            <tree:template>
              <m:Text text="{CatalogId}" wrapping="false" />
            </tree:template>
          </tree:Column>
        </tree:columns>
        <tree:rowActionTemplate>
          <tree:RowAction>
            <tree:RowActionItem
              type="Custom"
              icon="sap-icon://favorite"
              press="onManageFavoritePressed" />
          </tree:RowAction>
        </tree:rowActionTemplate>
      </tree:TreeTable>
    </content>
    <footer>
      <m:OverflowToolbar>
        <m:ToolbarSpacer />
        <m:Button type="Accept" text="Accept" />
        <m:Button type="Reject" text="Reject" />
      </m:OverflowToolbar>
    </footer>
  </DynamicPage>
</mvc:View>

推荐阅读