Office 365使用XsltListViewWebPart通过url参数ParameterBinding查询记录的问题

今天要在office 365实现一个页面显示指定列表的一条记录内容,这个需求也不复杂,直接创建页面,然后插入displayform,加个querystring参数,打算就这样搞定,但现实总是很骨感的,出错了

怎么试都会出错,然后就改为自己加入datasource,再放个表单什么的进行绑定,还是出错

Sorry, something went wrong

No item exists at  xxx/Pages/Untitled_2.aspx?id=4. It may have been deleted or renamed by another user.

image

页面的数据源和绑定代码如下

    <View Name="{74D13C73-CD04-4E43-9085-BDAD16FFACA1}" MobileView="TRUE" Type="HTML" DisplayName="StdView" Url="/Lists/xxx/StdView.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/15/images/generic.png?rev=35">
        <Query>
            <Where>
                <Eq>
                    <FieldRef Name="ID"/>
                    <Value Type="Integer">{id}</Value>
                </Eq>
            </Where>
        </Query>
        <ViewFields>
            <FieldRef Name="LinkTitle"/>
            <FieldRef Name="Date"/>
            <FieldRef Name="ID"/>
        </ViewFields>
        <RowLimit Paged="TRUE">30</RowLimit>
        <Aggregations Value="Off"/>
        <JSLink>clienttemplates.js</JSLink>
        <XslLink Default="TRUE">main.xsl</XslLink>
        <Toolbar Type="Standard"/>
    </View>
</XmlDefinition>
<parameterbindings>
    <ParameterBinding Name="id" Location="QueryString(id)" DefaultValue=""/>
    <ParameterBinding Name="dvt_sortdir" Location="Postback;Connection"/>
    <ParameterBinding Name="dvt_sortfield" Location="Postback;Connection"/>
    <ParameterBinding Name="dvt_startposition" Location="Postback" DefaultValue=""/>
    <ParameterBinding Name="dvt_firstrow" Location="Postback;Connection"/>
    <ParameterBinding Name="OpenMenuKeyAccessible" Location="Resource(wss,OpenMenuKeyAccessible)"/>
    <ParameterBinding Name="open_menu" Location="Resource(wss,open_menu)"/>
    <ParameterBinding Name="select_deselect_all" Location="Resource(wss,select_deselect_all)"/>
    <ParameterBinding Name="idPresEnabled" Location="Resource(wss,idPresEnabled)"/>
    <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)"/>
    <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(core,noXinviewofY_DEFAULT)"/>
    <ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)"/>
    <ParameterBinding Name="MoreAnnouncements" Location="Resource(wss,moreItemsParen)"/>
</parameterbindings></WebPartPages:XsltListViewWebPart>

由于 office 365上面不能通过错误id查看日志,灰常的麻烦,所以只能自己想办法,我发现可能是这个名字改的不够漂亮,然后我将它改为aid,再运行就通过了

页面请求的格式如下:xx.aspx?aid=4《《这个可以正常的过滤 出结果。。。

image

然后又顺便测试一下?id=4的情况,出错了

image

所以,这个故事告诉我们,名称一定要改漂亮些,这样运气就会好些!

发表评论