如何为显示字母而不是数字的视图创建寻呼机?

Mik*_*son 1 xpages

我需要一个用于视图的字母分页器.我没有看到任何样本或自定义寻呼机解决这个问题.我认为这将是一件非常普遍的事情.

MJ

Lot*_*ler 5

我不太确定你的"字母寻呼机"是什么意思,但我想你可能正在寻找某种字母导航器,就像我们在Notes客户端内的个人NAB中那样,对吧?

如果是这样,你不是真的在寻找寻呼机,而是寻找按字母顺序排列的视图过滤器.这是实现目标的一种方法:

  • 创建一个面板,给它一个独特的ID,如"viewContainer"或其他东西.将您的视图面板放入面板; 当然,视图的主要排序顺序必须是按字母顺序排列的
  • 在"viewContainer"上创建第二个面板,此处不需要ID
  • 在这个新面板中重复并将其绑定到一个新的JavaScript数组,如下所示:

    new Array("a","b","c",...,"x","y","z");

  • 输入重复的集合名称,如"letter"

  • 在重复内置一个链接控件.链接的标签将计算到repeat的集合名称,即"letter".
  • 将onclick事件分配给链接,将sessionScope变量设置为当前集合名称的值,如下所示:

    sessionScope.filter = letter;

  • 将事件的刷新模式设置为partial,以便刷新viewContainer面板

  • 在viewContainer中突出显示视图控件.在其数据属性中查找标记为"按列值过滤"的属性字段并进行计算.输入以下代码:

    sessionScope.filter;

而已.

编辑: 当然,您可以从视图本身动态构建repeat的数据源数组.因此,您可以使用以下内容,而不是构建静态的a-to-z数组:

@Unique(@Left(@DbColumn(@DbName(), "yourLookupView", viewColNumber), 1));
Run Code Online (Sandbox Code Playgroud)

那应该返回一个只包含那些真正在你视图中的字母的数组.

此外,您可以在重复之外的另一个静态链接控件重置过滤器以显示所有条目.它将像onclick事件的重复链接一样构建,调用此代码:

sessionScope.filter=null;
Run Code Online (Sandbox Code Playgroud)

请享用!