WiX - 数据集不匹配
WiX - Dataset Mismatch
我有一个 website 用于我的戏剧学院,在主页上,我有一个幻灯片放映,在两个不同的幻灯片上有两个中继器连接到两个不同的数据集。我用它们来显示我的数据库集合中的事件 information/status。
Slide1: recentRepeater <-- recentDataset <-- myCollection (For Recent Events)
Slide2: upcomingRepeater <-- upcomingDataset <-- myCollection (For Upcoming Events)
问题
加载时,dataset2
数据显示在 repeater1
中,即最近的事件显示在即将发生的事件部分,并在完全加载后得到更正。作为网站上显示的第一件事,我不希望它变得混乱。这对我的网站有负面影响
工作原理
我已将事件的日期作为 YYYYMMDD
格式的数字存储在数据库中。例如:
20-April-2019 ---> 20190420
我已将数据集正确连接到转发器元素,将数据集结果限制设置为 2
我根据YYYYMMDD
个数
排序要产生的结果
- 升序
upcomingDataset
- 降序
recentDataset
我生成了当天的 YYYYMMDD
格式编号,并通过 .setFilter()
函数
过滤了数据集产生的结果
$w("#recentDataset").setFilter(wixData.filter()
.lt("dateNumber", YYYYMMDD_today)
)
$w("#upcomingDataset").setFilter(wixData.filter()
.ge("dateNumber", YYYYMMDD_today)
)
我怎样才能防止这种情况发生..?
提前致谢
如果不实际使用您的网站,很难说出发生了什么。我认为您的两个数据集都连接到同一个集合。我猜问题是数据集只在页面加载后才被过滤。您可以通过在预览中将控制台切换到详细模式来验证这一点。
如果这确实是问题所在,我可以想到三种可能 fixes/workarounds:
- 在数据集设置中设置过滤器,而不是以编程方式设置它们。 (这是最简单的选择。)
- 在设置过滤器之前隐藏中继器。 (这有点骇人听闻。)
- 存储 return 由
setFilter
函数编辑的承诺,并使用 onReady()
中的 Promise.all()
return 它们。 (这是最奇特的选项。我认为它会起作用,但如果您不需要 以编程方式设置过滤器,您不妨改为执行选项 1。)
我有一个 website 用于我的戏剧学院,在主页上,我有一个幻灯片放映,在两个不同的幻灯片上有两个中继器连接到两个不同的数据集。我用它们来显示我的数据库集合中的事件 information/status。
Slide1: recentRepeater <-- recentDataset <-- myCollection (For Recent Events)
Slide2: upcomingRepeater <-- upcomingDataset <-- myCollection (For Upcoming Events)
问题
加载时,dataset2
数据显示在 repeater1
中,即最近的事件显示在即将发生的事件部分,并在完全加载后得到更正。作为网站上显示的第一件事,我不希望它变得混乱。这对我的网站有负面影响
工作原理
我已将事件的日期作为 YYYYMMDD
格式的数字存储在数据库中。例如:
20-April-2019 ---> 20190420
我已将数据集正确连接到转发器元素,将数据集结果限制设置为 2
我根据YYYYMMDD
个数
- 升序
upcomingDataset
- 降序
recentDataset
我生成了当天的 YYYYMMDD
格式编号,并通过 .setFilter()
函数
$w("#recentDataset").setFilter(wixData.filter()
.lt("dateNumber", YYYYMMDD_today)
)
$w("#upcomingDataset").setFilter(wixData.filter()
.ge("dateNumber", YYYYMMDD_today)
)
我怎样才能防止这种情况发生..?
提前致谢
如果不实际使用您的网站,很难说出发生了什么。我认为您的两个数据集都连接到同一个集合。我猜问题是数据集只在页面加载后才被过滤。您可以通过在预览中将控制台切换到详细模式来验证这一点。
如果这确实是问题所在,我可以想到三种可能 fixes/workarounds:
- 在数据集设置中设置过滤器,而不是以编程方式设置它们。 (这是最简单的选择。)
- 在设置过滤器之前隐藏中继器。 (这有点骇人听闻。)
- 存储 return 由
setFilter
函数编辑的承诺,并使用onReady()
中的Promise.all()
return 它们。 (这是最奇特的选项。我认为它会起作用,但如果您不需要 以编程方式设置过滤器,您不妨改为执行选项 1。)