0

我正在为Janus.GridEx.

gridEX1.FilterMode = FilterMode.Manual;

每次过滤器更改时我们都需要查询我们的数据库,并且每次用户在过滤器行中键入内容时我们都需要这样做,所以我们有:

gridEX1.FilterRowUpdateMode=FilterRowUpdateMode.WhenValueChanges;

为了实现手动过滤,我处理ApplyFiltering了这样的事件:

gridEX1.ApplyingFilter += (sender, e) =>
            {
                if (gridEX1.RootTable.Columns[gridEX1.Col].Key != "CustomerName") return;
                var customerName = gridEX1.GetValue(gridEX1.Col);

                gridEX1.SuspendBinding();
                bindingSource1.DataSource= string.IsNullOrWhiteSpace(customerName.ToString()) ? _customers : _customers.Where(c => c.CustomerName.Contains(customerName.ToString())).ToList();
                gridEX1.ResumeBinding();


            };

如您所见,我正在使用GetValue方法,因为当我们将更新模式设置为WhenValueChanges过滤行时未填充。这里的问题是:由于RowFilter未更新,因此当数据源更改网格时,会加载其先前的行过滤器,这反过来会清除用户已经键入的字符。

如何强制GridEx填写FilterRow模式WhenValueChanges

4

0 回答 0