custom filter menu

0 Answers 107 Views
Grid
Ali
Top achievements
Rank 1
Ali asked on 06 Jan 2024, 06:34 AM
HI i want defin custom filter menu for my Grid Column and this is my Grid
(
<GridColumn Field="MoneyTransferCode" FieldType="@(typeof(int))" Title="نوع انتقال وجه" Width="200px" Groupable="true">
<FilterMenuTemplate>
@{
<div class="filter-values-container">
@foreach (var country in MoneyTransferCodeList.Select(x => x.PersianDisplayName))
{
<div>
<TelerikCheckBox Value="@(GetFilterValues(context.FilterDescriptor).Contains(country))"
ValueChanged="@((bool value) => ColumnValueChanged(value, country, nameof(TermOfTransactionDto.MoneyTransferCode), context.FilterDescriptor))"
Id="@($"country_{country}")">
</TelerikCheckBox>
<label for="@($"country_{country}")">
@country
</label>
</div>
}
</div>
}
</FilterMenuTemplate>





<GroupHeaderTemplate>
نوع انتقال وجه: @Data.Where(x => x.MoneyTransferCode == int.Parse(context.Value.ToString())).Select(x => x.MoneyTransferCodeName).FirstOrDefault()
</GroupHeaderTemplate>
<Template>
@{
var item = context as TermOfTransactionDto;
@item.MoneyTransferCodeName
}
</Template>
<EditorTemplate>
@{
var item = context as TermOfTransactionDto;
<TelerikDropDownList Data="@MoneyTransferCodeList"
ValueField="Value"
TextField="PersianDisplayName"
Width="100%"
@bind-Value="@item.MoneyTransferCode"/>
}
</EditorTemplate>
</GridColumn>
)
and this is my function I need 
(
public void ColumnValueChanged(bool value, string itemValue, string columnName, CompositeFilterDescriptor filterDescriptor)
{
var filter = filterDescriptor.FilterDescriptors.FirstOrDefault(f => (f as FilterDescriptor).Value?.ToString() == itemValue);

int itemValueNumber = MoneyTransferCodeList.First(x => x.PersianDisplayName == itemValue).Value;

filterDescriptor.LogicalOperator = FilterCompositionLogicalOperator.Or;

if (value && filter == null)
{
// var filterDescriptor1 = new FilterDescriptor(columnName, FilterOperator.IsEqualTo, itemValue);
// filterDescriptor.FilterDescriptors.Add(filterDescriptor1);
filterDescriptor.FilterDescriptors.Add(new FilterDescriptor(columnName, FilterOperator.IsEqualTo, itemValueNumber));


}
else if (!value && filter != null)
{
filterDescriptor.FilterDescriptors.Remove(filter);
}
}
)
and when i use this filter its truly work but i cant see the item that i select in front end , also I see a sample like this in telerik docs but its for string values and in this case i want use for int values pleas help me.

No answers yet. Maybe you can help?

Tags
Grid
Asked by
Ali
Top achievements
Rank 1
Share this question
or