gpt4 book ai didi

asp.net - 为日期列Telerik网格自定义过滤器选项

转载 作者:行者123 更新时间:2023-12-03 15:02:50 38 4
gpt4 key购买 nike

我正在使用telerik网格。我需要为网格中的所有列应用过滤器。目前,我正在使用以下代码自定义过滤器选项。通过使用以下代码,我将删除所有列的某些项目。但是,对于日期列,谁能告诉我在网格中进行过滤的可能选项是什么,以及如何自定义这些过滤选项?

后面的代码

    protected void RGVTest_Init(object sender, EventArgs e)
{

GridFilterMenu menu = RGVTest.FilterMenu;
int i = 0;
while (i < menu.Items.Count)
{
if (menu.Items[i].Text == "Between" ||
menu.Items[i].Text == "NotBetween")
{
menu.Items.RemoveAt(i);
}
else
{
i++;
}
}
}

* Aspx:*
<telerik:RadGrid ID="RGVTest" runat="server" Skin="Vista" AllowPaging="True"
AllowFilteringByColumn="true" AllowSorting="true" GridLines="None" OnItemCommand="RGVTest_ItemCommand"
PageSize="10" OnNeedDataSource="RGVTest_NeedDataSource" OnItemDataBound="RGVTest_ItemDataBound"
OnInit="RGVTest_Init">
<GroupingSettings CaseSensitive="false" />
<PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true" />
<MasterTableView AutoGenerateColumns="False" CellSpacing="-1" >
<NoRecordsTemplate>
<div style="color: red">
No Records to display!
</div>
</NoRecordsTemplate>
<Columns>

<telerik:GridTemplateColumn DataField="SSN" ReadOnly="True" HeaderText="SSN" UniqueName="SSN"
SortExpression="SSN">
<ItemTemplate>
<asp:Label ID="LblSSN" runat="server" Text='<%#Eval("SSN") %>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="5%" />
</telerik:GridTemplateColumn>

<telerik:GridTemplateColumn DataField="Date" HeaderText="Date" UniqueName="Date"
SortExpression="Date">
<ItemTemplate>
<asp:Label ID="LblDate" runat="server" Text='<%#Eval("Date","{0:MM/dd/yyyy}") %>'></asp:Label>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" Width="4%" />
</telerik:GridTemplateColumn>

</Columns>
</MasterTableView>
</telerik:RadGrid>

最佳答案

您确实喜欢这种方式:

 protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)  
{
if (e.CommandName == RadGrid.FilterCommandName)
{
Pair filterPair = e.CommandArgument as Pair;
string columnName = Convert.ToString(filterPair.Second);
if (columnName == "CreationDate")
{
e.Canceled = true;
string date = ((TextBox)((GridFilteringItem)e.Item)[Convert.ToString(filterPair.Second)].Controls [0]).Text;
DateTime startDate = Convert.ToDateTime(date);
DateTime endDate = startDate.AddDays(1);
string newFilter = "('" + startDate.ToString("MM/dd/yyyy") + "' <= [CreationDate] AND [CreationDate] <= '" + endDate.ToString("MM/dd/yyyy") + "')";
GridBoundColumn dateColumn = (GridBoundColumn)e.Item.OwnerTableView.GetColumnSafe(columnName);
dateColumn.CurrentFilterValue = startDate.ToString("MM/dd/yyyy");
RadGrid1.MasterTableView.FilterExpression = newFilter;
RadGrid1.Rebind();
}
}
}

关于asp.net - 为日期列Telerik网格自定义过滤器选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4345525/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com