加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 自定义日期colmn telerik网格的过滤器选项

发布时间:2020-12-16 07:39:13 所属栏目:asp.Net 来源:网络整理
导读:我正在使用telerik网格.我需要为网格中的所有列应用过滤器. Currenly我正在使用以下代码自定义过滤器选项.通过使用以下代码,我将删除所有列的某些项目.但是,对于任何一个日期列,请告诉我在网格中过滤的可能选项是什么以及如何自定义这些过滤选项? 代码背后
我正在使用telerik网格.我需要为网格中的所有列应用过滤器. Currenly我正在使用以下代码自定义过滤器选项.通过使用以下代码,我将删除所有列的某些项目.但是,对于任何一个日期列,请告诉我在网格中过滤的可能选项是什么以及如何自定义这些过滤选项?

代码背后

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();  
         }  
     }  
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读