【问题标题】:Using sj:select with s:checkboxlist使用 sj:select 和 s:checkboxlist
【发布时间】:2011-10-31 17:37:42
【问题描述】:

因此,出于不同的原因,我很难尝试使用这两个元素中的任何一个。首先,我将描述s:checkboxlist 会发生什么。

sj:select 上的值发生变化时,我想在我的控制器上填充一个列表以在我的s:checkboxlist 上使用,我是否必须使用javascript?我最初的猜测是在 sj:select onchange="" 参数上调用 javascript 函数,然后在 javascript 函数上刷新 s:checkboxlist 以便它使用新列表填充。

例如,如果我的 sj:select 上有类似的东西:

<s:url id="urlGetNewList"
    action="mycontroller!getNewList" />
<sj:select href="%{urlGetNewList}" id="myselect"
    onChangeTopics="reloadList"
    onCompleteTopics="reloadList"
    name="model.idType" list="types"
    listKey="idType" listValue="nameType"
    emptyOption="false" headerKey="-1"
    headerValue="select a value"
    formIds="frmMyForm" />

在我的s:checkboxlist 我有:

<s:checkboxlist name="arrayOfIds" list="idsType"
                listKey="id" listValue="name"
                theme="vertical-checkbox" />

所以我的s:select 是从一个名为类型的列表中填充的,当sj:select 上的值发生更改时,我会在我的控制器上调用一个名为getNewList 的函数,这将更改使用我的复选框列表的列表,但是如何刷新复选框列表。

您会注意到我可以通过使用sj:checkboxlist 来解决这个问题,我知道它可以工作,但是如果我这样做了,那么当我尝试加载通过整数数组idsType 检查的复选框时,复选框将不会t 得到检查。例如,如果我有一个这样的整数数组:

idsType = { 2, 3 }

我有一个包含 5 个元素的列表 arrayOfIds,然后当我使用 s:checkboxlist 时,将显示 5 个复选框,并选中第二个和第三个复选框。

但如果我使用sj:checkboxlist 执行此操作,则只会选中第一个复选框,并且复选框将根据sj:select 值动态更改,当我使用s:checkboxlist 时不会发生这种情况。

我真的很困惑如何解决这个问题,如果有人可以提供帮助,将不胜感激。

【问题讨论】:

    标签: jquery struts2 controller checkboxlist checked


    【解决方案1】:

    要回答第一个问题,您当然需要使用 JavaScript 来更新复选框列表——标准的&lt;s:checkboxlist&gt; 完全不知道 Ajax。您需要手动绑定到sj:select 发布的主题。

    插件 wiki(假设这是您正在使用的插件,实际上有几个)有一个讨论 how to handle JSON results in a topic 的页面。

    &lt;sj:checkboxlist&gt;可以通过收听话题重新加载;处理列表中的多个项目应该没有问题;您可能需要提供有关您尝试过的操作以及出了什么问题的其他详细信息(如果有的话,例如,检查 JavaScript 控制台)。

    【讨论】:

    • 对于 sj:checkboxlist 我使用 '
      ' 但正如我之前所说,这将无法检查复选框m 使用包含选中哪些复选框的整数数组,但它适用于 s:checkboxlist 但不适用于 sj:checkboxlist,我该如何检查它们?
  • 我检查了您的链接,这就是我要查找的内容,但我不知道如何使用新列表重新加载 s:checkboxlist,是否有重新加载单个组件的功能?或者我应该怎么做才能重新加载那个特定的组件?
  • 猜你喜欢
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多