为此,您可以在页面加载时在过滤器行上调用 enterEditMode,并传入您要编辑的特定单元格:
function enterEditFilter() {
var grid = $find('<%= grid.ClientID %>');
var filtering = grid.get_behaviors().get_filtering();
var filterRow = filtering._row;
var cell = filterRow.get_cellByColumnKey('Text');
filtering.enterEditMode(cell);
}
请注意,要执行此操作,您必须能够访问过滤器行。似乎没有办法通过公共 API 访问它,所以我使用私有变量 _row。这不是推荐的方法,因为该变量可能会更改,因此我建议您提交一个新的产品创意,以将过滤器行添加到公共 API。您可以在以下页面上执行此操作:
http://ideas.infragistics.com/
另一件需要注意的是,默认过滤器类型是“全部”,因此您还需要更改它。您可以通过处理客户端过滤事件并在那里设置规则来做到这一点:
function grid_filtering(sender, eventArgs) {
var filters = eventArgs.get_columnFilters();
for (var i = 0; i < filters.length; i++) {
var condition = filters[i].get_condition();
if (condition.get_rule() === 0) {
var columnType = filters[i].get_columnType();
if (columnType == 'string') {
condition.set_rule($IG.TextFilterRules.Equals);
}
else if (columnType == 'number') {
condition.set_rule($IG.NumericFilterRules.Equals);
}
}
}
}