这里我使用syncfusion框架,我使用这个框架的时间还不长。我的问题的意思是:
我有3列。“Product_Name”,“Cost_Price”,“Sales_Price”和其中的50行数据。现在,我想基于列“Sales_Price”中的值小于或等于列“Cost_Price”中的值,通过sfButton1上的click事件以编程方式实现数据过滤器。我只想显示Sales_Price有问题的数据,即当Sales_Price值〈= Cost_Price值时。
在前面的实验中,我尝试使用telerik,这与我的要求一致:
private void RAD_GridView_ShowData_CustomFiltering(object sender, GridViewCustomFilteringEventArgs e)
{
e.Visible = (int)e.Row.Cells["Sales_price"].Value <= (int)e.Row.Cells["Cost_price"].Value;
}
private void Btn_ShowFilter_Click(object sender, LinkLabelLinkClickedEventArgs e)
{
RAD_GridView_ShowData.EnableFiltering = true;
RAD_GridView_ShowData.EnableCustomFiltering = true;
RAD_GridView_ShowData.CustomFiltering += new GridViewCustomFilteringEventHandler(RAD_GridView_ShowData_CustomFiltering);
FilterDescriptor descriptor = new FilterDescriptor("Sales_price", FilterOperator.IsGreaterThanOrEqualTo, 0);
RAD_GridView_ShowData.FilterDescriptors.Add(descriptor);
}
但是我使用的telerik只是一个试用版,很快就会过期,所以我使用syncfusion,它可以完全控制社区许可证。
这是我从同步文档中得到的代码:但它只根据〈0的值过滤“Stock”列中的数据:
B_1_DGV_Stock.Columns["Stock"].FilterPredicates.Add(new FilterPredicate() { FilterType = FilterType.LessThan, FilterValue = "0" });
1条答案
按热度按时间of1yzvn41#
通过使用下面所示SfDataGrid视图筛选概念,可以实现此要求:
有关编程筛选的详细信息,请参阅以下用户指南文档链接,
UG链接:https://help.syncfusion.com/windowsforms/datagrid/filtering#programmatic-filtering
同样,DataTable也不支持此功能。如果您也需要使用Datatable集合实现相同的功能,则可以使用下面所示的ExpandoObject。
展开对象:
过滤概念: