Hey Guys,
I'm having trouble updating a listview attached to a RadDataPager based on a FireCommand using the result of .NET's History mechanism attached to the scriptmanager.
I write the history point fine, I retrieve it fine when the user hits "back" - the Navigate event fires and I see the correct index.
I then try to pass this index to FireCommand on my RadDataPager, but of course the listview and raddatapager, if they do receive the FireCommand, do not update. Am I missing an AJAx wireup somewhere? I have a RadAjaxManager set up to update the listview and datapager based on the datapager itself but no luck. I feel like the Navigate event needs to trigger my AjaxManager in some way?
Any ideas? Thanks.
Code below:
I'm having trouble updating a listview attached to a RadDataPager based on a FireCommand using the result of .NET's History mechanism attached to the scriptmanager.
I write the history point fine, I retrieve it fine when the user hits "back" - the Navigate event fires and I see the correct index.
I then try to pass this index to FireCommand on my RadDataPager, but of course the listview and raddatapager, if they do receive the FireCommand, do not update. Am I missing an AJAx wireup somewhere? I have a RadAjaxManager set up to update the listview and datapager based on the datapager itself but no luck. I feel like the Navigate event needs to trigger my AjaxManager in some way?
Any ideas? Thanks.
Code below:
<%@ Master Debug="true" Language="C#" MasterPageFile="~/shared/templates/global/AH-Global-L1-2-Column.master" AutoEventWireup="true" CodeFile="listjobs.master.cs" Inherits="global_listjobs" %><%@ Reference Control="~/shared/controls/layout/widgets/JobSearchWidget.ascx" %><%@ Reference Control="~/shared/controls/ddls/CountrySelector.ascx" %><asp:Content ID="Content1" ContentPlaceHolderID="cpColumn1" Runat="Server"> <h1 id="pageTop"><asp:Literal ID="litPageHeading" runat="server" Text="Search Jobs In the Arts" /></h1> <div id="searchListSearchWidget"> <ah:JobSearchWidget ID="JobSearchWidget" runat="server" /> </div> <div id="searchPageSupplementBox"> <h2>Jobs quick links</h2> <ul> <li><a href="<%#Config.URLDomain %>jobs/advertise-a-job/" title="Advertise your job on artsHub">Advertise your job on artsHub</a></li> <li><a href="<%#Config.URLDomain %>jobs/new-jobs-in-the-last-7-days/" title="View jobs listed in the last 7 days">New jobs in last 7 days</a></li> <li><a href="<%#Config.URLDomain %>jobs/new-jobs-in-the-last-14-days/" title="View jobs listed in the last 14 days">New jobs in last 14 days</a></li> <li><a href="<%#Config.URLDomain %>jobs/-/-/volunteer/" title="View Volunteer opportunities">View volunteer opportunities</a></li> <li><a href="<%#Config.URLDomain %>job-seeker-list.aspx" title="Find the perfect employee on artsHub">Find the perfect employee on artsHub</a></li> <li><a href="<%#Config.URLDomain %>my-account/" title="Create a resume and be found!">Create a resume and be found!</a></li> </ul> </div> <div class="searchListingMREC"><ah:Banner ID="banSharedMREC" runat="server" ZoneName="V5_MREC_SHARED" /></div> <ahControls:ListView ID="rlvJobsListPage" runat="server" ItemPlaceholderID="phJobsList" DataSourceId="objJobList" OnItemCreated="rlvJobsListPage_ItemCreated" AllowCustomPaging="true" AllowPaging="true" PageSize="20" AllowSorting="True"> <LayoutTemplate> <div id="searchList"> <div id="phJobsList" runat="server"></div> </div> </LayoutTemplate> <EmptyDataTemplate> No records found </EmptyDataTemplate> <ItemTemplate></ItemTemplate> </ahControls:ListView> <telerik:RadDataPager ID="RadDataPager1" runat="server" PageSize="20" PagedControlID="rlvJobsListPage" OnPageIndexChanged="RadDataPager1_PageIndexChanged"> <Fields> <telerik:RadDataPagerButtonField FieldType="FirstPrev" /> <telerik:RadDataPagerButtonField FieldType="Numeric" /> <telerik:RadDataPagerButtonField FieldType="NextLast" /> </Fields> </telerik:RadDataPager> <asp:ObjectDataSource ID="objJobList" EnablePaging="True" SelectMethod="SearchJobsList" SelectCountMethod="SearchJobsList_Count" runat="server" TypeName="ArtsHub.BLL.Jobs.Job" OnSelecting="objJobList_Selecting"> <SelectParameters> <asp:Parameter DefaultValue="" Name="searchString" Type="String" ConvertEmptyStringToNull="false" /> <asp:Parameter Name="publicationId" Type="Int32" DefaultValue="1" /> <asp:Parameter Name="listingTemplate" Type="int32" DefaultValue="0" /> <asp:Parameter Name="category" Type="Int32" DefaultValue="0" /> <asp:Parameter Name="opportunityType" Type="Int32" DefaultValue="0" /> <asp:Parameter Name="countryId" Type="Int32" DefaultValue="0" /> <asp:Parameter Name="regionId" Type="Int32" DefaultValue="0" /> <asp:Parameter Name="status" Type="Int32" DefaultValue="1" /> <asp:Parameter Name="searchFuzzinessType" Type="Int32" DefaultValue="0" /> </SelectParameters> </asp:ObjectDataSource> <telerik:RadAjaxManager ID="ramListJobs" runat="server" DefaultLoadingPanelID="alpListJobs"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadDataPager1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rlvJobsListPage" LoadingPanelID="alpListJobs" /> <telerik:AjaxUpdatedControl ControlID="RadDataPager1" LoadingPanelID="alpListJobs" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="alpListJobs" runat="server" /></asp:Content>public partial class global_listjobs : ArtsHub.ArtsHubPage{ protected override void OnLoad(EventArgs e) { ScriptManager.GetCurrent(this.Page).Navigate += new EventHandler<HistoryEventArgs>(CheckAJAXPaging); //Finally call base class constructor base.OnLoad(e); } protected void Page_PreRender(object sender, EventArgs e) { if (HttpContext.Current.Items["newIndex"] != null) { RadDataPager1.FireCommand("Page", HttpContext.Current.Items["newIndex"].ToString()); ArtsHub.BLL.Emailing.Emailing.EmailBug("Firing page for newIndex = " + HttpContext.Current.Items["newIndex"].ToString(), ""); } else ArtsHub.BLL.Emailing.Emailing.EmailBug("Context newIndex was null", ""); } public void CheckAJAXPaging(object sender, HistoryEventArgs e) { ArtsHub.BLL.Emailing.Emailing.EmailBug("Check AJAX Paging fired - state was " + e.State.Count.ToString(), ""); if (e.State.Count > 0) ArtsHub.BLL.Emailing.Emailing.EmailBug("Check AJAX Paging fired - key 0 was " + e.State[0].ToString(), ""); if (e.State.Count <= 0) { // Setup default state HttpContext.Current.Items.Add("newIndex", "0"); //RadDataPager1.FireCommand("Page", "0"); } else { HttpContext.Current.Items.Add("newIndex", e.State[0].ToString()); //RadDataPager1.FireCommand("Page", e.State[0].ToString()); } } protected void rlvJobsListPage_ItemCreated(object sender, ListViewItemEventArgs e) { // Grab a reference to the data item ListViewDataItem currentItem = (e.Item as ListViewDataItem); Job thisListing = (Job)currentItem.DataItem; // Set the item template to use rlvJobsListPage.ItemTemplate = Templating.Render_ITemplate(ArtsHub.Globals.SectionIds.Jobs, thisListing.ListingTemplate, TemplateType.Summary, this); } protected void objJobList_Selecting(object sender, ObjectDataSourceSelectingEventArgs e) { string searchText = (JobSearchWidget.SearchString.Text.Trim().ToLower() == "search text") ? "" : JobSearchWidget.SearchString.Text.Trim(); e.InputParameters["searchString"] = searchText; e.InputParameters["publicationId"] = ArtsHub.Config.PubNum; e.InputParameters["category"] = JobSearchWidget.CategorySelector.SelectedCategoryId; e.InputParameters["opportunityType"] = JobSearchWidget.OpportunityTypeSelector.SelectedOpportunityType; e.InputParameters["countryId"] = JobSearchWidget.CountrySelector.selectedCountryCode; e.InputParameters["regionId"] = JobSearchWidget.CountrySelector.selectedRegionId; e.InputParameters["searchFuzzinessType"] = JobSearchWidget.SearchAccuracyTypeSelector.SelectedSearchAccuracyType; } protected void btnSearch_Click(object sender, EventArgs e) { rlvJobsListPage.DataBind(); } protected void RadDataPager1_PageIndexChanged(object sender, RadDataPagerPageIndexChangeEventArgs e) { if (Page.IsPostBack) ScriptManager.GetCurrent(this.Page).AddHistoryPoint("p", e.NewPageIndex.ToString(), "Job Search Page " + e.NewPageIndex.ToString()); }}