or


<%@ Page Title="" Language="vb" AutoEventWireup="false" CodeBehind="RadSample.aspx.vb" Inherits="HelpDesk.RadSample" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title><%= HelpDesk.GetAppConfigValue("AppTitle") %></title> <telerik:RadStyleSheetManager ID="styleSheetMgr" runat="server" /> <telerik:RadScriptBlock ID="RadScriptBlock1" runat="server"> <script src="<%= HelpDesk.WebUtil.GetVirtualPath()%>/Scripts/helpdesk.js?<%= HelpDesk.WebUtil.GetRevision()%>" type="text/javascript"></script> <script type="text/javascript"> var prefix = '<%= HelpDesk.WebUtil.GetVirtualPath() %>'; var username = '<%= Membership.GetUser().Username %>'; </script> </telerik:RadScriptBlock> <link href="~/Styles/DataStyle.css" rel="stylesheet" type="text/css" /> <link href="~/Styles/OtherStyles.css" rel="stylesheet" type="text/css" /> <link href="~/Styles/Style.css" rel="stylesheet" type="text/css" /> <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> <link href="~/Styles/Menu.css" rel="stylesheet" type="text/css" /></head><body onload="RadMasterLoaded();"> <form id="form1" runat="server"> <telerik:RadScriptManager ID="MainRadScriptManager" runat="server" EnablePageMethods="true"> <Scripts> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" /> <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" /> </Scripts> </telerik:RadScriptManager> <telerik:RadAjaxManager runat="server" ID="AjaxManager" EnableAJAX="false" > <AjaxSettings> <telerik:AjaxSetting AjaxControlID="TicketFilter"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="TicketGrid" LoadingPanelID="LoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="TicketFilter" /> <telerik:AjaxUpdatedControl ControlID="TestRefresh" /> <telerik:AjaxUpdatedControl ControlID="UsedFilter" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="TestRefresh"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="TicketGrid" LoadingPanelID="LoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="TicketFilter" /> <telerik:AjaxUpdatedControl ControlID="TestRefresh" /> <telerik:AjaxUpdatedControl ControlID="UsedFilter" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="SetFilter"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="TicketGrid" LoadingPanelID="LoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="TestRefresh" /> <telerik:AjaxUpdatedControl ControlID="TicketFilter" /> <telerik:AjaxUpdatedControl ControlID="SetFilter" /> <telerik:AjaxUpdatedControl ControlID="UsedFilter" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="TicketGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="TicketGrid" LoadingPanelID="LoadingPanel" /> <telerik:AjaxUpdatedControl ControlID="TicketFilter" /> <telerik:AjaxUpdatedControl ControlID="TestRefresh" /> <telerik:AjaxUpdatedControl ControlID="UsedFilter" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="LoadingPanel" runat="server" Width="100%" Height="100%" BackColor="Black" Transparency="75">Loading </telerik:RadAjaxLoadingPanel> <asp:Label runat="server" ID="UsedFilter" /> <telerik:RadFilter runat="server" ID="TicketFilter" ShowApplyButton="true" FilterContainerID="TicketGrid" OperationMode="Server" ExpressionPreviewPosition="None" /> <telerik:RadButton runat="server" ID="TestRefresh" OnClick="DoTheRefresh" Text="RefreshMe" /> <telerik:RadButton runat="server" ID="SetFilter" OnClick="SetFilterClick" Text="SetFilter" /> <telerik:RadGrid ID="TicketGrid" runat="server" Height="100%" Width="100%" OnNeedDataSource="TG_NeedDataSource" AutoGenerateColumns="false" AllowSorting="True" GridLines="None" EnableLinqExpressions="false" AllowAutomaticUpdates="true" > <MasterTableView TableLayout="Fixed" IsFilterItemExpanded="true" Name="Tickets" DataKeyNames="TID" CommandItemDisplay="None" AllowMultiColumnSorting="true" Width="100%" > <Columns> <telerik:GridBoundColumn DataField="TID" DataType="System.Int16" UniqueName="TID" ForceExtractValue="Always" HeaderText="TID" headerstyle-width="60px" ReadOnly="true" /> <telerik:GridBoundColumn DataField="TicketTitle" UniqueName="TicketTitle" HeaderText="Title" ItemStyle-Wrap="false" ColumnEditorID="TextEditor" ItemStyle-Font-Bold="true" headerstyle-width="300px" /> </Columns> </MasterTableView> </telerik:RadGrid> </form> </body></html>Imports Telerik.Web.UIPublic Class RadSample Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub TG_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles TicketGrid.NeedDataSource UsedFilter.Text = "Used Filter: " + TicketGrid.MasterTableView.FilterExpression TicketGrid.DataSource = GetTickets() End Sub Protected Sub DoTheRefresh(sender As Object, e As System.EventArgs) Handles TestRefresh.Click Dim provider As RadFilterSqlQueryProvider = New RadFilterSqlQueryProvider() provider.ProcessGroup(TicketFilter.RootGroup) TicketGrid.MasterTableView.FilterExpression = provider.Result TicketGrid.Rebind() End Sub Protected Sub SetFilterClick(sender As Object, e As System.EventArgs) Handles SetFilter.Click TicketFilter.RootGroup.AddExpression(New RadFilterLessThanFilterExpression(Of Integer)("TID") _ With {.Value = "400"}) TicketGrid.Rebind() End Sub Private Function GetTickets() Dim dataTable As DataTable dataTable = New DataTable("Tickets") dataTable.Columns.Add("TID") dataTable.Columns.Add("TicketTitle") dataTable.Rows.Add(New Object() {1, "The initial data load should show all tickets. (1-701)"}) dataTable.Rows.Add(New Object() {101, "Then hit the SetFilter button and only tickets 1-301 should show."}) dataTable.Rows.Add(New Object() {201, "Then hitting RefresheMe should still display 1-301, but it empties the grid because the filter is wrong."}) dataTable.Rows.Add(New Object() {301, "Hitting RefreshMe again though fixes the filter and shows 1-301."}) dataTable.Rows.Add(New Object() {401, "Hi"}) dataTable.Rows.Add(New Object() {501, "Hi"}) dataTable.Rows.Add(New Object() {601, "Hi"}) dataTable.Rows.Add(New Object() {701, "Hi"}) GetTickets = dataTable End FunctionEnd Class