需要通过按钮点击而不是默认自动完成来调用SlickGrid过滤,所以我修改了updateFilter()方法('#display'是按钮ID):
$('#display').click(function() {
updateFilter();
});
function updateFilter() {
theString = $('#txtSearch').val();
while(theString.substring(0,1)==" ")
theString = theString.substring(1, theString.length);
searchString = new String(theString);
dataView.setFilterArgs({
searchString:searchString,
});
dataView.refresh();
}
非常简单......我只是在单击按钮时抓取文本框中的值,然后确保它是一个字符串并将其传递给“searchString”进行处理。您会注意到我还必须修剪一个领先的空间,否则过滤器将始终无法通过。例如,Firebug迹线将显示“57”,而不是实际的“57”。这将导致返回清除网格(我假设因为它无法匹配前导空格)。 要求还要求“清除过滤器”链接重置过滤器(包括“#txtSearch”文本框)。过滤器在清除后始终有效,并且跟踪显示没有前导空格。 theString和searchString都在script(=“”)的顶部初始化。我的问题是,为什么会发生这种情况,它的主要空间来自哪里?
答案 0 :(得分:0)
没关系......自己造成的伤口。事实证明我用value =“”初始化了文本框。遗憾!