<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="treeSellers"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="lblBuyers" UpdatePanelCssClass="" /> <telerik:AjaxUpdatedControl ControlID="treeBuyers" UpdatePanelCssClass="" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="treeBuyers"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="formBuyerDetails" UpdatePanelCssClass="" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager><asp:LinkButton ID="link_edit" runat="server" CommandName="Edit">Edit</asp:LinkButton>Protected Sub formBuyerDetails_ItemCommand(sender As Object, e As FormViewCommandEventArgs) Handles formBuyerDetails.ItemCommand If (e.CommandName = "Edit") Then formBuyerDetails.ChangeMode(FormViewMode.Edit) 'Doesnt Work ElseIf (e.CommandName = "Cancel") Then formBuyerDetails.ChangeMode(FormViewMode.ReadOnly) 'This probably doesnt either, but I cant even get here ElseIf (e.CommandName = "UpdateBuyer") Then 'UPDATE function here End If End Sub
Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) Handles RadGrid1.ItemCommand Select Case e.CommandName Case "ClearFilters" For Each column As GridColumn In RadGrid1.MasterTableView.Columns column.CurrentFilterFunction = GridKnownFunction.NoFilter column.CurrentFilterValue = String.Empty Next RadGrid1.MasterTableView.FilterExpression = String.Empty RadGrid1.MasterTableView.Rebind() End SelectEnd Sub Protected Sub RadGrid1_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) Handles RadGrid1.ItemCommand Select Case e.CommandName Case "ClearFilters" Dim toolbar As RadToolBar = DirectCast(e.CommandSource, RadToolBar) Dim button As RadToolBarSplitButton = DirectCast(toolbar.FindItemByText("Ricerca"), RadToolBarSplitButton) button.EnableDefaultButton = True button.DefaultButtonIndex = 2 For Each column As GridColumn In RadGrid1.MasterTableView.Columns column.CurrentFilterFunction = GridKnownFunction.NoFilter column.CurrentFilterValue = String.Empty Next RadGrid1.MasterTableView.FilterExpression = String.Empty RadGrid1.MasterTableView.Rebind() End SelectEnd Sub<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="WebForm2.aspx.vb" Inherits="IPS_Gateway.WebForm2" %><!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 runat="server"> <title></title></head><script type="text/javascript"> function ShowHideFilter(sender, args) { var radGrid = $find("<%= rgvMainGrid.ClientID %>"); var masterTable = radGrid.get_masterTableView(); var toggleList = sender.get_selectedToggleStateIndex(); switch (toggleList) { case 0: sender.set_toolTip('Show Filter Row'); masterTable.hideFilterItem(); break; case 1: sender.set_toolTip('Hide Filter Row'); masterTable.showFilterItem(); break; }}</script><body onkeydown="javascript:if(window.event.keyCode == 13) window.event.keyCode = 9;" > <form id="form1" runat="server"> <act:ToolkitScriptManager ID="tsmManager" runat="server" EnablePartialRendering="true" AsyncPostBackTimeOut="600" /> <telerik:RadAjaxManager ID="ajaxManager" runat="server" > <ClientEvents /> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rgvMainGrid" > <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rgvMainGrid" LoadingPanelID="ralpTimer" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="ralpTimer" runat="server" Skin="WebBlue" EnableEmbeddedSkins="true" BackgroundPosition="Center" > <wuc5:TimerControl ID="wucTimer" runat="server" /> </telerik:RadAjaxLoadingPanel> <asp:SqlDataSource ID="SQLDS_ArgusDBID" runat="server" ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>" SelectCommandType="StoredProcedure" SelectCommand="[Company].[DSP_CompanyMaster-Sel-Ins-Upd-Del]" /> <asp:SqlDataSource ID="SQLDS_SecurityType" runat="server" ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>" SelectCommandType="StoredProcedure" SelectCommand="[Security].[DSP_SecurityIdentifiers-Sel-Ins-Upd-Del]" /> <asp:SqlDataSource ID="SQLDS_SecurityUsers" runat="server" ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>" SelectCommandType="StoredProcedure" SelectCommand="[Security].[DSP_SecurityUsers-Sel-Ins-Upd-Del]" /> <asp:SqlDataSource ID="SQLDS_SavedSettings" runat="server" ConnectionString="<%$ ConnectionStrings:IPSDataConnectionString %>" SelectCommandType="StoredProcedure" SelectCommand="[System].[DSP_SavedSettings-Sel-Ins-Upd-Del]" /> <asp:UpdatePanel ID="uppGrid" runat="server" UpdateMode="Conditional"> <ContentTemplate> <telerik:RadGrid ID="rgvMainGrid" runat="server" DataSourceID="SQLDS_SecurityUsers" EnableEmbeddedSkins="true" Skin="Office2010Silver" Height="550px" Width="1230px" EnableViewState="true" AutoGenerateColumns="false" AllowMultiRowSelection="false" AllowFilteringByColumn="true" EnableHeaderContextMenu="true" EnableHeaderContextFilterMenu="true" AllowAutomaticDeletes="false" AllowAutomaticInserts="false" AllowAutomaticUpdates="false" AllowSorting="true" EnableLinqExpressions="false" AllowPaging="true" PageSize="100" > <ItemStyle Wrap="false" /> <AlternatingItemStyle Wrap="false" /> <ActiveItemStyle BackColor="CornflowerBlue" /> <HeaderStyle HorizontalAlign="Center" /> <PagerStyle AlwaysVisible="true" Mode="NextPrevNumericAndAdvanced"/> <EditItemStyle BackColor="CornflowerBlue" /> <ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true" EnablePostBackOnRowClick="false" EnableRowHoverStyle="false" > <ClientEvents /> <Resizing AllowColumnResize="true" EnableRealTimeResize="true" ResizeGridOnColumnResize="true" AllowRowResize="false"/> <Selecting AllowRowSelect="true" /> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> <GroupHeaderItemStyle Font-Size="11px" Font-Names="calibri" Font-Bold="true" Height="12px"/> <ExportSettings Excel-FileExtension="xls" Excel-Format="Biff" OpenInNewWindow="true" ExportOnlyData="true" IgnorePaging="true" UseItemStyles="true"> </ExportSettings> <MasterTableView Name="Users" DataSourceID="SQLDS_SecurityUsers" DataKeyNames="UserID" ClientDataKeyNames="UserId" Width="1213px" EnableViewState="true" EditMode="InPlace" CommandItemDisplay="Top" > <CommandItemTemplate> <div style="padding: 1px 0px 7px 0px;height:18px;"> <telerik:RadButton ID="rbtAdd" runat="server" SkinId="skn_RadGrid_Add" CommandName="InitInsert" /> <telerik:RadButton ID="rbtEdit" runat="server" SkinId="skn_RadGrid_Edit" CommandName="EditSelected" /> <telerik:RadButton ID="rbtDelete" runat="server" SkinId="skn_RadGrid_Delete" CommandName="DeleteSelected" /> <telerik:RadButton ID="rbtCancel" runat="server" SkinId="skn_RadGrid_Cancel" CommandName="CancelAll" /> <telerik:RadButton ID="rbtSaveNew" runat="server" SkinId="skn_RadGrid_Save" CommandName="PerformInsert" /> <telerik:RadButton ID="rbtSave" runat="server" Skinid="skn_RadGrid_SaveNew" CommandName="UpdateEdited" /> <div style="position:absolute;left:1037px;"> <telerik:RadButton ID="rbtFilters" runat="server" SkinId="skn_RadGrid_Filter" ButtonType="StandardButton" ToggleType="CustomToggle" AutoPostBack="false" EnableViewState="true" OnClientToggleStateChanged="ShowHideFilter" > <ToggleStates> <telerik:RadButtonToggleState PrimaryIconUrl="<%$ Resources:Images,FilterExpand16%>" /> <telerik:RadButtonToggleState PrimaryIconUrl="<%$ Resources:Images,FilterCollapse16%>" /> </ToggleStates> </telerik:RadButton> </div> </div> </CommandItemTemplate> <Columns> <telerik:GridBoundColumn DataField="UserId" UniqueName="UserId" HeaderText="Id" HeaderStyle-Width="60px" SortExpression="UserId" FilterControlWidth="40px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" ReadOnly="true" /> <telerik:GridBoundColumn DataField="EmployeeLogin" UniqueName="EmployeeLogin" HeaderText="Login Id" HeaderStyle-Width="150px" SortExpression="EmployeeLogin" FilterControlWidth="130px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" /> <telerik:GridBoundColumn DataField="EmployeeNumber" UniqueName="EmployeeNumber" HeaderText="Emp #" HeaderStyle-Width="80px" SortExpression="EmployeeNumber" FilterControlWidth="60px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" ReadOnly="true" /> <telerik:GridBoundColumn DataField="UserName" UniqueName="UserName" HeaderText="User Name" HeaderStyle-Width="190px" SortExpression="UserName" FilterControlWidth="170px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" /> <telerik:GridBoundColumn DataField="EmailAddress" UniqueName="EmailAddress" HeaderText="Email Address" HeaderStyle-Width="190px" SortExpression="EmailAddress" FilterControlWidth="170px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" /> <telerik:GridDropDownColumn DataField="SecurityType" UniqueName="SecurityType" HeaderText="Sec Type" HeaderStyle-Width="100px" SortExpression="SecurityType" FilterControlWidth="70px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" DataSourceID="SQLDS_SecurityType" DefaultInsertValue="Group" DropDownControlType="DropDownList" ListTextField="LevelCode" ListValueField="LevelCode"/> <telerik:GridDropDownColumn DataField="DefaultDBID" UniqueName="DefaultDBID" HeaderText="Default DBID" HeaderStyle-Width="90px" SortExpression="DefaultDBID" FilterControlWidth="70px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" DefaultInsertValue="IPSMAIN" DataSourceID="SQLDS_ArgusDBID" DropDownControlType="DropDownList" ListTextField="ArgusDBID" ListValueField="ArgusDBID" /> <telerik:GridBoundColumn DataField="CompanyCode" UniqueName="CompanyCode" HeaderText="Company" HeaderStyle-Width="80px" SortExpression="CompanyCode" FilterControlWidth="60px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" ReadOnly="true"/> <telerik:GridBoundColumn DataField="EmployeeStatus" UniqueName="EmployeeStatus" HeaderText="Employee Status" HeaderStyle-Width="110px" SortExpression="EmployeeStatus" FilterControlWidth="90px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" ReadOnly="true"/> <telerik:GridBoundColumn DataField="CreatedBy" UniqueName="CreatedBy" HeaderText="Created By" HeaderStyle-Width="160px" SortExpression="CreatedBy" FilterControlWidth="140px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" Display="false" ReadOnly="true"/> <telerik:GridBoundColumn DataField="CreatedDate" UniqueName="CreatedDate" HeaderText="Created Date" HeaderStyle-Width="160px" SortExpression="CreatedDate" FilterControlWidth="140px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" Display="false" ReadOnly="true"/> <telerik:GridBoundColumn DataField="UpdatedBy" UniqueName="UpdatedBy" HeaderText="Updated By" HeaderStyle-Width="160px" SortExpression="UpdatedBy" FilterControlWidth="140px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" Display="false" ReadOnly="true"/> <telerik:GridBoundColumn DataField="UpdatedDate" UniqueName="UpdatedDate" HeaderText="Updated Date" HeaderStyle-Width="160px" SortExpression="UpdatedDate" FilterControlWidth="140px" FilterImageUrl="<%$ Resources:Images,FilterGray16%>" Display="false" ReadOnly="true"/> <telerik:GridBoundColumn DataField="ActiveFlag" UniqueName="ActiveFlag" Visible="false" /> </Columns> </MasterTableView> </telerik:RadGrid> </ContentTemplate> </asp:UpdatePanel></form></body></html><telerik:RadGrid ID="rgHead" runat="server" ShowStatusBar="True" AutoGenerateColumns="False" AllowSorting="True" AllowPaging="True" GridLines="None" OnPreRender="rgHead_PreRender" OnNeedDataSource="rgHead_NeedDataSource" OnUpdateCommand="rgHead_UpdateCommand" OnInsertCommand="rgHead_InsertCommand" OnDeleteCommand="rgHead_DeleteCommand" OnItemCommand="rgHead_ItemCommand" onitemdatabound="rgHead_ItemDataBound"> <MasterTableView AllowSorting="True" DataKeyNames="RefNo" CommandItemDisplay="Top" Name="Head"> <Columns> <telerik:GridButtonColumn Text="Delete" CommandName="Delete" UniqueName="DeleteCommandColumn"> </telerik:GridButtonColumn> <telerik:GridTemplateColumn DataField="RefNo" SortExpression="RefNo" UniqueName="RefNo"> <EditItemTemplate> <asp:TextBox ID="Textbox1" runat="server" Text='<%# Bind("RefNo") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("RefNo") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Description" ReadOnly="True" UniqueName="Description" HeaderText="Description"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Rate" ReadOnly="True" UniqueName="Rate" HeaderText="Rate"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Active" ReadOnly="True" UniqueName="Active" HeaderText="Active" DataType="System.Boolean"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LastUpdateDate" UniqueName="LastUpdateDate" HeaderText="Last Updated"> </telerik:GridBoundColumn> <telerik:GridEditCommandColumn UniqueName="EditCommandColumn"> </telerik:GridEditCommandColumn> </Columns> <EditFormSettings UserControlName="~/Controls/DetailControl.ascx" EditFormType="WebUserControl"> <EditColumn UniqueName="EditCommandColumn1"> </EditColumn> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle></telerik:RadGrid>protected void rgHead_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ rgHead.DataSource = ds.Tables["tblHead"];}<telerik:RadGrid ID="rgItems" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellSpacing="0" GridLines="None" OnNeedDataSource="rgItems_NeedDataSource" Width="70%" OnDeleteCommand="rgItems_DeleteCommand" OnInsertCommand="rgItems_InsertCommand" OnItemCommand="rgItems_ItemCommand" OnUpdateCommand="rgItems_UpdateCommand" OnItemDataBound="rgItems_ItemDataBound"> <MasterTableView CommandItemDisplay="Top" ClientDataKeyNames="ItemNo" DataKeyNames="ItemNo" EditMode="EditForms"> <RowIndicatorColumn Visible="True"> </RowIndicatorColumn> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <ExpandCollapseColumn Visible="True"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridButtonColumn CommandName="DeleteItem" Text="Delete" UniqueName="DeleteColumn"> </telerik:GridButtonColumn> <telerik:GridBoundColumn DataField="ItemNo" HeaderText="Item No" UniqueName="ItemNo"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="DiscountRate" HeaderText="Discount Rate (%)" UniqueName="DiscountRate"> </telerik:GridBoundColumn> <telerik:GridEditCommandColumn UniqueName="EditCommandColumn2"> </telerik:GridEditCommandColumn> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumn2"> </EditColumn> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </MasterTableView> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> <FilterMenu EnableImageSprites="False"> </FilterMenu></telerik:RadGrid>protected void rgItems_NeedDataSource(object sender, GridNeedDataSourceEventArgs e){ rgItems.DataSource = ds.Tables["tblDetails"].Select("RefNo='" + (string)DataBinder.Eval(DataItem, "RefNo") + "'");} Hello,
My sort stops working after the user moves to a different page. So, once I sort a column, it sorts correctly on
the first page, when the user moves to a different page, the sort is lost. I am using AllowCustomSorting.
Please help.
Here are all my important code snippets:
My grid:
<telerik:RadGrid ID="gvPolicyResults" runat="server" Visible="false" AllowSorting="true"
AutoGenerateColumns="false" OnItemCommand="gvPolicyResults_RowCommand" OnPageIndexChanged="gvPolicyResults_PageIndexChanged"
OnNeedDataSource="gvPolicyResults_NeedDataSource" OnItemCreated="gvPolicyResults_ItemCreated"
Width="100%" BorderWidth="0" CellPadding="0" CellSpacing="0" HeaderStyle-CssClass="DataColumnHeader1"
HeaderStyle-HorizontalAlign="Left" AllowFilteringByColumn="true"
PageSize="50" PagerStyle-Mode="NextPrevAndNumeric" PagerStyle-Position="TopAndBottom"
OnSortCommand="gvPolicyResults_SortCommand" AllowPaging="true" >
<MasterTableView DataKeyNames="PolicyReference" AllowCustomSorting="true">
Methods:
protected void gvPolicyResults_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
gvPolicyResults.CurrentPageIndex = e.NewPageIndex;
gvPolicyResults.Rebind();
}
protected void gvPolicyResults_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
gvPolicyResults.DataSource = GetPolicyResults();
}
protected void gvPolicyResults_SortCommand(object source, GridSortCommandEventArgs e)
{
if ("EffectiveDate".Equals(e.CommandArgument))
{
DataView dv = GetPolicyResults();
switch (e.OldSortOrder)
{
case GridSortOrder.None:
dv.Sort = "[EffectiveDateSort] DESC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
case GridSortOrder.Ascending:
dv.Sort = "[EffectiveDateSort] ASC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
case GridSortOrder.Descending:
dv.Sort = "[EffectiveDateSort] DESC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
}
}
else if ("PolicyReference".Equals(e.CommandArgument))
{
DataView dv = GetPolicyResults();
switch (e.OldSortOrder)
{
case GridSortOrder.None:
dv.Sort = "[PolicyReference] DESC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
case GridSortOrder.Ascending:
dv.Sort = "[PolicyReference] ASC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
case GridSortOrder.Descending:
dv.Sort = "[PolicyReference] DESC";
e.Item.OwnerTableView.DataSource = dv;
e.Item.OwnerTableView.Rebind();
break;
}
}
}