我遇到了问题:我想在我的searchGrid框中添加规则时更新我的选择选项。
以下是上下文:
我有一个带有动态多列模型的网格。对于每列,我正确设置了搜索选项。我在网格中添加了一个搜索按钮,打开一个包含multipleSearch的新搜索框:true。我正在使用ASP.NET MVC 3 / JavaScript / Jqgrid 4.4.1
问题:我想让一个字段只能搜索一次。所以我正在寻找如何在高级搜索中触发buildSelect。
AfterRedraw功能不是我想要的,因为我们只能在它们构建后处理它们。
第一次:
<select>
<option selected="selected" value="Data.0">AGENCY_CODE</option>
<option value="Data.1">Data1</option>
<option value="Data.2">Data2</option>
<option value="Data.3">Data3</option>
</select>
当我点击我想要的添加规则时:
<select>
<option selected="selected" value="Data.1">Data1</option>
<option value="Data.2">Data2</option>
<option value="Data.3">Data3</option>
</select>
有什么想法吗?
问题解决了!这有点棘手(对我来说真的太丑了......)
var searchSelect = function(select) {
if (select.length == 1) {
return select;
}
var tmpSelect = [];
for (var i = 1; i < select.length; i ++) {
for (var j = 0; j < select[i].options.length; j++) {
if (select[i].options[j].value == select[0].options[select[0].selectedIndex].value) {
select[i].options[j].remove();
}
}
tmpSelect.push(select[i]);
}
tmpSelect = searchSelect(tmpSelect);
for (i = 0; i < tmpSelect.length; i++) {
for (j = 0; j < select[0].options.length; j++) {
if (select[0].options[j].value == tmpSelect[i].options[tmpSelect[i].selectedIndex].value) {
select[0].options[j].remove();
}
}
}
return select;
}
searchSelect($(this).find("table.group td.columns>select"));