使用ASP.NET jQuery Repeater控件的子视图

ASP.NET中,jQueryRepeater控件是一个非常实用的工具,它可以帮助以一种动态的方式显示数据。本文将详细介绍如何使用Repeater控件中的子视图,包括如何定义子视图样本、切换子视图以及定义容器。

准备

在开始之前,请确保已经熟悉了ASP.NETjQueryRepeater控件的基础知识。如果需要,可以参考《30分钟掌握ASP.NET jQuery Repeater》一文进行准备。

定义子视图样本

在Repeater控件中显示的子视图,被称为子视图。子视图是子视图样本的副本,并且可以根据条件显示不同的数据。定义子视图样本没有特别之处,例如:

<je:Repeater ID="<子视图ID>" runat="server" FilterField="<子视图搜索字段>"> <ItemTemplate> <div> <span class="url">#{url}</span> <br/> <br/> #{picture} </div> </ItemTemplate> </je:Repeater>

在大多数情况下,需要为子视图样本定义属性FilterField,即用于搜索子视图数据的条件。在上面的代码中,添加了一个url作为条件,然后可以在服务器端编写方法:

[WebMethod] public SortedDictionary<string, object> GetGooglePicture(string url) { // 返回JSON }

因为这里只返回一行,所以不需要添加pageindex和pagesize参数。关于如何返回JSON,请参考《不同.NET版本中返回JSON》。所有示例代码都是使用.NET 4.0编写的。

切换子视图

如果需要在Repeater控件中切换、关闭、开启子视图,可以使用shiftview、collapseview、expandview三个方法,例如:

<div id="list"> <je:Repeater ID="googleRepeater" runat="server" Selector="'#list'" PageSize="2" IsVariable="true" FillAsync-Url="webservice.asmx" FillAsync-MethodName="SearchGoogle"> <ItemTemplate> <div class="picture"> <div je-button="label='More';" je-onclick="shiftview,'pictureRepeater','#{url}'"> </div> <div je-id="pictureRepeater" style="display: none;"> </div> </div> </ItemTemplate> </je:Repeater> </div>

以shiftview为例,第一个参数是子视图的ID,后面的参数是用于搜索子视图数据的条件,在示例中,字段URL是一个条件,对应于子视图样本属性FilterField中的URL。如果有更多条件,可以继续添加,但条件的顺序必须与子视图样本的FilterField属性相同。

expandview方法与shiftview类似,expandview将打开子视图,而shiftview将切换子视图的打开状态。collapseview方法将关闭子视图,它不需要传递条件。默认情况下,当子视图第一次打开时,它将自动调用fill方法获取数据,然后open操作将不再刷新数据。

除了定义子视图之外,还需要在行模板中定义子视图的容器:

<ItemTemplate> <div class="picture"> <div je-id="pictureRepeater" style="display: none;"> </div> </div> </ItemTemplate>
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485