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
function OnChange(sender, args) { if (sender.hasChanges()) { var response; if (sender.get_filterExpressions()._hasFilerEntries) { response = sender.view(); alert("filter"); } else response = sender.get_data(); // args.get_items(); if (response) { //DO SOMETHING } } }sender.get_filterExpressions()._hasFilerEntries
<asp:UpdatePanel runat="server" ID="up1" UpdateMode="Always"><ContentTemplate><asp:Panel ID="Panel1" CssClass="ControlPanel" runat="server"><asp:Table runat="server" ID="contents" CssClass="MuseumDateTimeTable"><asp:TableRow ID="trCalendar" runat="server" VerticalAlign="Top"><asp:TableCell ID="tcCalendar" runat="server" CssClass="CalendarOverallCell"><div class="MuseumStepHeaderWrapper"><div class="MuseumVariantStepText"><asp:Label runat="server" ID="lblMuseumStepOne"><%=GetLocaleResourceString("Museum.StepOne")%></asp:Label> </div> <asp:Label runat="server" ID="ltNextAvailableDate" Text="" CssClass="MuseumNextAvailableDate" /> <%--<div class="MuseumVariantChooseText"><%=GetLocaleResourceString("Museum.MuseumChooseDateTimeText")%></div>--%></div> <div id="MuseumSelectedDayBox"> <%-- <div id="DateSelectedTitle"><%=GetLocaleResourceString("Museum.MuseumDateSelectedTitle")%></div>--%><div id="DateSelectedDay"><asp:Literal runat="server" ID="ltMuseumDateSelectedDay" Text="" /></div></div> <asp:HiddenField runat="server" ID="ShowCalendar" ClientIDMode="Static" /><telerik:RadCalendar ID="tkCalendar" runat="server" EnableMultiSelect="false" OnSelectionChanged="tkCalendar_SelectionChange"CssClass="CalendarOverall" AutoPostBack="true" ShowRowHeaders="false" NavigationPrevToolTip="Previous Month"NavigationNextToolTip="Next Month" Skin="Special" EnableEmbeddedSkins="false"EnableEmbeddedBaseStylesheet="false" EnableMonthYearFastNavigation="false" DayNameFormat="Short"UseColumnHeadersAsSelectors="false"><ClientEvents OnDateSelecting="LoadingTimes" /><ClientEvents OnInit="InitializeCalendar" /><ClientEvents OnCalendarViewChanging="MonthChangeShow" /><ClientEvents OnDateSelected="EnableTimes" /><SelectedDayStyle CssClass="CalendarSelectedDay" /><OtherMonthDayStyle CssClass="CalendarOtherMonthDay" /><TitleStyle CssClass="CalendarTitle" /><DayStyle CssClass="CalendarDay" /><SpecialDays><telerik:RadCalendarDay Repeatable="Today" Date="" ItemStyle-CssClass="rcToday"></telerik:RadCalendarDay></SpecialDays><CalendarDayTemplates><telerik:DayTemplate ID="BlackOutDayTemplate" runat="server"><Content><div class="UnavailableKeyText"><%=GetLocaleResourceString("Museum.EventCalendar.Unavailable")%></div></Content></telerik:DayTemplate><telerik:DayTemplate ID="SoldOutDayTemplate" runat="server"><Content><div class="SoldOutDateKeyText"><%=GetLocaleResourceString("Museum.EventCalendar.SoldOut")%></div></Content></telerik:DayTemplate><telerik:DayTemplate ID="PreviousDayTemplate" runat="server"><Content><div class="PreviousDate"></div></Content></telerik:DayTemplate></CalendarDayTemplates></telerik:RadCalendar></asp:TableCell><%--<asp:TableCell ID="tcCalSpacer" runat="server" Width="10px"><asp:Label ID="Label1" runat="server" Text=" "></asp:Label></asp:TableCell> --%><asp:TableCell ID="tcAvailableTimes" runat="server" VerticalAlign="Top" CssClass="MuseumAvailableTimes"> <div class="MuseumStepHeaderWrapper"><div class="MuseumVariantStepText"> <asp:Label runat="server" ID="lblMuseumStepTwo"><%=GetLocaleResourceString("Museum.StepTwo")%></asp:Label></div> <%-- <div class="MuseumVariantChooseText"><%=GetLocaleResourceString("Museum.MuseumChooseQuantityText")%></div>--%></div><asp:ListBox CssClass="timeListBox" AutoPostBack="True" OnSelectedIndexChanged="TimedListBoxSelectionChanged"ID="TimesAvailable" runat="server"></asp:ListBox><asp:Label ID="lblTimesMessage" runat="server" CssClass="MuseumTimesMessage"></asp:Label></asp:TableCell></asp:TableRow></asp:Table><asp:HiddenField ID="hfDateLock" value="false" runat="server" /><asp:HiddenField ID="hfLastDate" Value="" runat="server"/><div id="museumCalendarLoadingContainer"></div><div id="museumCalendarLoadingContent"><%=GetLocaleResourceString("Museum.MuseumCalendarEventProcessingText")%><br /><img src="../App_Themes/Museum/images/museumLayout/loading.gif" /></div></asp:Panel></ContentTemplate></asp:UpdatePanel>$(document).ready(function () { $('#museumCalendarLoadingContainer').hide(); $('#museumCalendarLoadingContent').hide(); //$('table.RadCalendar_Special').hide(); $('#MuseumSelectedDayBox').removeClass('chosen'); //On initial start adjust generated size and prepend blank option to list $(".timeListBox").attr('size', '1'); //TODO: If 'No Shows Today' is in list don't show 'Choose Time' text only show 'No Shows Today' if ($('.timeListBox option[value="NoShows"]').length) { //Do nothing and show 'No Shows' message $('.timeListBox').addClass('SoldOutDateKeyText'); }else{ $('<option value="" selected>Choose a Time</option>').prependTo('.timeListBox'); } //Default Choose Date on Dom Load and disable Choose Time $('#DateSelectedDay').html('Choose Date'); if ($('#DateSelectedDay').html('Choose Date')) { $('.timeListBox').prop('disabled', 'disabled').addClass('disabled'); $('<option value="" selected>Choose a Time</option>').prependTo('.timeListBox'); $('.timeListBox').before('<div class="disabledTrigger"></div>'); } $('.disabledTrigger').click(function (e) { $('#disabledMessage').hide(); $('<div id="disabledMessage">Please choose date first<span id="closeFieldAlert">X</span></div>').prependTo('body').hide().delay(300).slideDown(400).delay(6000).slideUp(400); $('#closeFieldAlert, #disabledMessage').click(function () { $('#disabledMessage').hide(); }); // alert("Please choose DATE first"); });$(document).on('click', '#MuseumSelectedDayBox', function () { $('#MuseumSelectedDayBox').addClass('chosen'); $("table.RadCalendar_Special").fadeIn(300); $('#calendarModalCover').show();}); });//Show/Hide calendar and show calendar again on Month Change using the ASP.NET Hidden field.function pageLoad(sender, args) { if ($telerik.findElement(document, "ShowCalendar").value == "show") { $("table.RadCalendar_Special").show(); }; $telerik.findElement(document, "ShowCalendar").value = "hide"; $("#calendardiv").click(function () { $("table.RadCalendar_Special").show(); });}function MonthChangeShow(sender, eventArgs) { $telerik.findElement(document,"ShowCalendar").value = "show";}//DateSelecting - OnDateSelectingfunction LoadingTimes(sender, eventArgs) {$('#museumCalendarLoadingContainer').show();$('#museumCalendarLoadingContent').show(); $('#calendarModalCover').hide();}//Calendar Initialized - OnInitfunction InitializeCalendar(sender) { //alert('initialize calendar');$('#museumCalendarLoadingContainer').hide();$('#museumCalendarLoadingContent').hide();$(".timeListBox").attr('size', '1');}//Enable Times on date selected - OnDateSelected - this is not really working because of postbackfunction EnableTimes(sender, eventArgs) {// alert('enable times'); //sender.set_autoPostBack(true);//Kind of works $('.timeListBox').prop('disabled', false).removeClass('disabled'); $('table.RadCalendar_Special').hide();}