Oracle Application Express - APEX报告区域 - 如何将日期范围滑块用于日期列(开始日期 - 结束日期)

时间:2014-09-01 13:10:22

标签: jquery sql oracle date jquery-ui-slider

我创建了一个包含7个列的报告区域,包括(开始日期和结束日期),具有日历。现在我想实现日期范围滑块从每行中删除那些日历选择。例如http://ghusse.github.io/jQRangeSlider/documentation.html#quickStart 另外,我想将开始日期和结束日期存储在一个项目中。 我如何实现它。 Plz建议

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要为报告的每一行创建一个日期范围滑块。在这种情况下,我们必须为每一行生成一个唯一ID的DIV。如果您的行中也有ID,我们可以将此ID用作滑块DIV ID的后缀。我们假设您现在在报告后面有以下查询:

select event_id
,      event_name
,      start_date
,      end_date
from   events

您在日期列中以某种方式生成日历窗口小部件。 好的,现在首先隐藏start_date和end_date列,使它们不再可见。以后也许你可以删除它们。

然后选择一个包含新滑块的额外列:

select event_id
,      event_name
,      start_date
,      end_date
,      null as slider
from   events

现在转到报告属性并编辑滑块列。转到列格式化,这里我们将添加HTML表达式,它将成为滑块的DIV。我们还添加了一段javascript,它将为我们生成滑块,并绑定更改事件。单击[插入列值]链接以查找ID列。按照上面的例子,它看起来像这样:

<div id="slider#EVENT_ID#"></div>
<script>
  $("#slider#EVENT_ID#").dateRangeSlider();
  $("#slider").bind("valuesChanging", function(e, data) {
    HandleSliderChange(#EVENT_ID#, data);
  });
</script>

现在您必须在某处定义HandleSliderChange函数,以便您可以处理该事件。它会传递事件/行的ID,并且可以在data参数中找到新的日期。用它来设置您的页面项目或以您想要的任何方式处理它。

当然,您可能还需要做一些其他的事情,例如设置滑块的初始日期,但这样可以给出一个可能的路径的良好印象。