0

我正在使用带有过滤集的 Infragistics NetAdvantage WebDataGrid。

在页面加载时,我想打开第一个过滤器的文本框,并将焦点设置在那里,以便用户开始输入要过滤的文本。

在此处输入图像描述

我在网上看到了一个关于如何为 jQuery 网格执行此操作的示例,但不适用于 WebDataGrid

我想要一些类似的东西:

         myWebDataGrid.Behaviors.Filtering.ColumnFilters[2].RuleTextNode.focus; 

我正在使用 Infragistics35.Web.v11.2,版本=11.2.20112.2025

4

1 回答 1

1

为此,您可以在页面加载时在过滤器行上调用 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);
            }
        }
    }
}
于 2014-08-29T18:15:39.237 回答