This is a migrated thread and some comments may be shown as answers.

RadAjax null after rebind of grid

3 Answers 163 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Somnath
Top achievements
Rank 1
Somnath asked on 15 Nov 2011, 07:40 AM
Hi ,

I have content-page is which i have radajax manager and radgrid,update panel  as  below.

when i delete ,copy first time using radajax request it works perfectly and  error comes in firefox

Error: uncaught exception: [Exception... "An invalid or illegal string was specified"  code: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)"  location: "http://localhost/SQWebNET/ScriptResource.axd?d=gumzQ2oRMzwzsnNMMz4tEtfD3-F8Ve26kBpsS1IkM9ocQe4PE415WY-gfCZiuPQ30&t=7844759b Line: 292"]

then if i again try to delete  or copy i'll get error

Error: $find("ctl00_ContentPlaceHolder1_RadAjaxManager1") is null
Source File: http://localhost/SQWebNET/UserManagement/UserGroups.aspx
Line: 217

Please suggest solution for above.
Note: its working perfectly in othere browsers.

ASPX
<asp:Content ID="cntHead" runat="server" ContentPlaceHolderID="head">
    <link href="../CSS/style.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        div.RadToolBar .rtbItem
        {
            float: left !important;
        }
        .RadGrid .rgRow td, .RadGrid .rgAltRow td, .RadGrid .rgEditRow td, .RadGrid .rgFooter td
        {
            padding-top: 2px !important;
            padding-bottom: 2px !important;
        }
    </style>
    <script type="text/javascript" language="javascript">
        function onToolBarClientButtonClicking(sender, args) {
 
            var button = args.get_item();
 
            if (button.get_commandName() == getLabel('Delete')) {
                OpenConfirm();
            }
            else if (button.get_commandName() == getLabel('New')) {
 
                var oWnd = $find('ctl00_ContentPlaceHolder1_rdWUserGroup');
                oWnd.show();
                oWnd.setSize(470, 350);
                oWnd.SetTitle(getLabel('CreateNewGroup'));
                oWnd.setUrl('UserGroupPopUp.aspx?type=New');
                oWnd.center();
            }
            else if (button.get_commandName() == getLabel('NewAD')) {
 
                var oWnd = $find('ctl00_ContentPlaceHolder1_rdWUserGroup');
                oWnd.show();
                oWnd.setSize(470, 350);
                oWnd.SetTitle(getLabel('CreateNewGroup'));
                oWnd.setUrl('UserGroupPopUp.aspx?type=NewAD');
                oWnd.center();
            }
            else if (button.get_commandName() == getLabel('Edit')) {
                Edit('Button', 0);
            }
            else if (button.get_commandName() == getLabel('Copy')) {
                Copy('Button', 0);
            }
        }
 
        function Copy(control, rowIndex) {
            $find('ctl00_ContentPlaceHolder1_RadAjaxManager1').ajaxRequest("Copy");
        }
 
        function Edit(control, rowIndex) {
            //debugger;
            var radGrid = $find("ctl00_ContentPlaceHolder1_rgGroups");
            switch (control) {
 
                case 'Grid':
                    break;
                case 'Button':
                    if (radGrid.get_selectedItems()[0] != null) {
                        rowIndex = radGrid.get_selectedItems()[0]._itemIndexHierarchical;
                    }
                    else
                        rowIndex = '0';
                    break;
            }
            //document.getElementById('ctl00_ContentPlaceHolder1_hdnRowIndex').value = rowIndex;
            var MasterTable = radGrid.get_masterTableView();
 
            var GroupName = MasterTable.get_dataItems()[parseInt(rowIndex)].findElement("hdnGroupName").value;
            var safeGroupName = escape(GroupName);
            safeGroupName = safeGroupName.replace(/\+/g, '%2B');
            var GroupID = MasterTable.get_dataItems()[parseInt(rowIndex)].findElement("hdnGroupId").value;
            //var oWnd = $find("<%= rdWUserGroup.ClientID %>");
            var oWnd = $find('ctl00_ContentPlaceHolder1_rdWUserGroup');
            oWnd.show();
            oWnd.setSize(470, 350);
            oWnd.SetTitle(getLabel('EditGroup'));
            oWnd.center();
            oWnd.setUrl('UserGroupPopUp.aspx?type=Edit&GroupName=' + safeGroupName + '&GroupID=' + GroupID);
        }
 
        function OnClientClose(oWnd, args) {
 
            //debugger;
            //*  argument has 3 value when it Saves or Updates in Pop Up. It is returned on click of Cancel Button.Rebind Grid if arg is 3  *//
            arg = oWnd.argument;
            if (arg == "3" || arg == "2") {
                //document.getElementById('ctl00_ContentPlaceHolder1_btnBindUserGroups').click();
                $find("<%=RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");
                oWnd.argument = "";
            }
            else {
                RowSelected(null);
                oWnd.argument = "";
            }
        }
 
        function RowSelected(rowObject) {
 
            var length = $find('ctl00_ContentPlaceHolder1_rgGroups').get_selectedItems().length;
            var radGrid = $get("ctl00_ContentPlaceHolder1_rgGroups");
            var radToolBar = $telerik.findControl(radGrid, "rtbGroups");
            var newButton = radToolBar.get_items().getItem(0);
            var newADButton = radToolBar.get_items().getItem(1);
            var deleteButton = radToolBar.get_items().getItem(2);
            var editButton = radToolBar.get_items().getItem(3);
            var copyButton = radToolBar.get_items().getItem(4);
            var hdnDomainCount = document.getElementById("ctl00_ContentPlaceHolder1_hdnDomainCount");
            switch (parseInt(length)) {
                case 0:
                    newButton.set_enabled(true);
                    if (hdnDomainCount.value != "0") {
                        newADButton.set_enabled(true);
                    }
                    deleteButton.set_enabled(false);
                    editButton.set_enabled(false);
                    copyButton.set_enabled(false);
                    break;
 
                case 1:
                    newButton.set_enabled(false);
                    newADButton.set_enabled(false);
                    deleteButton.set_enabled(true);
                    editButton.set_enabled(true);
                    copyButton.set_enabled(true);
                    break;
                case 2:
                    newButton.set_enabled(false);
                    newADButton.set_enabled(false);
                    deleteButton.set_enabled(true);
                    editButton.set_enabled(false);
                    copyButton.set_enabled(false);
                    break;
            }
        }
 
        function pageLoad() {
 
            var hdngrdPage = $get("<%= hdngridPaging.ClientID %>");
            if (hdngrdPage.value == 1) {
 
                $telerik.$('.rgPagePrev')[0].title = '';
                $telerik.$('.rgPageFirst')[0].title = '';
 
                $telerik.$('.rgPagePrev')[0].disabled = 'true';
                $telerik.$('.rgPageFirst')[0].disabled = 'true';
            }
            else if (hdngrdPage.value == 2) {
 
                $telerik.$('.rgPageNext')[0].title = '';
                $telerik.$('.rgPageLast')[0].title = '';
 
                $telerik.$('.rgPageNext')[0].disabled = 'true';
                $telerik.$('.rgPageLast')[0].disabled = 'true';
            }
            else if (hdngrdPage.value == 3) {
 
                $telerik.$('.rgPagePrev')[0].title = '';
                $telerik.$('.rgPageFirst')[0].title = '';
                $telerik.$('.rgPageNext')[0].title = '';
                $telerik.$('.rgPageLast')[0].title = '';
 
                $telerik.$('.rgPagePrev')[0].disabled = 'true';
                $telerik.$('.rgPageFirst')[0].disabled = 'true';
                $telerik.$('.rgPageNext')[0].disabled = 'true';
                $telerik.$('.rgPageLast')[0].disabled = 'true';
            }
 
            document.getElementById("ctl00_ContentPlaceHolder1_btnBindUserGroups").style.display = 'none';
            //document.getElementById("ctl00_ContentPlaceHolder1_btnDeleteUserGroups").style.display = 'none';
            var height = document.getElementById("ctl00_ContentPlaceHolder1_hdnHeight");
            //var pane = document.getElementById("ctl00_RightContenePane");
 
            document.getElementById("RAD_SPLITTER_PANE_CONTENT_ctl00_RightContenePane").style.height = height.value + "px";
            //            debugger;
            //            var radGrid = $find("ctl00_ContentPlaceHolder1_rgGroups");
            //            var MasterTable = radGrid.get_masterTableView();
            //pane.style.height = height.value + "px";
 
            var grid = $find("ctl00_ContentPlaceHolder1_rgGroups");
            var length = grid.get_masterTableView()._columnsInternal.length;
            for (i = 0; i < length - 1; i++) {
 
                var uniqueName = grid.get_masterTableView()._columnsInternal[i].get_uniqueName();
                getCookieGrid(i, uniqueName, grid);
            }
        }
 
        function ColumnResize(sender, args) {
            changeWidth(sender, args);
        }
 
        function OpenConfirm() {
            Telerik.Web.UI.RadWindowUtils.Localization["OK"] = getLabel("Yes"); //"Yes";
            Telerik.Web.UI.RadWindowUtils.Localization["Cancel"] = getLabel("No"); //"No";
            radconfirm(getLabel('DeleteConfirm'), confirmCallBackFn, 330, 100, null, getLabel("StarQueryWeb"));
            Telerik.Web.UI.RadWindowUtils.Localization["OK"] = getLabel("OK"); //"OK";
            Telerik.Web.UI.RadWindowUtils.Localization["Cancel"] = getLabel("CancelWindow"); //"Cancel";
            return false;
        }
 
        function confirmCallBackFn(arg) {
            if (arg) {
                //document.getElementById("ctl00_ContentPlaceHolder1_btnDeleteUserGroups").click();
                $find('ctl00_ContentPlaceHolder1_RadAjaxManager1').ajaxRequest("Delete");
            }
            else {
                return false;
            }
        }
 
        function BeforeCloseEditPage(radWindow, args) {
            //debugger;
            //alert("hi");
            if (radWindow.argument == "1") {
 
                 
                //*  argument has 1 value when it changes(text change ,Dropdown change) in Pop Up. It is returned on click of Close Button.Ask Confirmation if arg = 1.value is set in the respective change events(javascript)  *//
                args.set_cancel(true);
                var title = getLabel("StarQueryWeb");
                Telerik.Web.UI.RadWindowUtils.Localization["OK"] = getLabel("Yes"); //"Yes";
                Telerik.Web.UI.RadWindowUtils.Localization["Cancel"] = getLabel("No"); //"No";
 
                radconfirm(getLabel("SaveChanges"), confirmSaveChangesCallBackFn, 330, 100, null, title)
 
                Telerik.Web.UI.RadWindowUtils.Localization["OK"] = getLabel("OK"); //"OK";
                Telerik.Web.UI.RadWindowUtils.Localization["Cancel"] = getLabel("CancelWindow"); //"Cancel";
            }
            else {
                //*  argument has 2 value when it Updates(click on Save Button in Edit Mode) in Pop Up. Rebind the grid if arg = 2 value is set in validate()   *//
                if (radWindow.argument == "2") {
                    document.getElementById('ctl00_ContentPlaceHolder1_btnBindUserGroups').click();
                }
                else {
                    args.set_cancel(false);
                }
            }
        }
 
        function confirmSaveChangesCallBackFn(arg) {
            if (arg) {
 
                document.location.href = document.location.href;
            }
            else {
 
            }
        }
 
        function UserGroupsHelp(radWindow) {
            var TitleBar = radWindow.GetTitlebar();
            var parent = TitleBar.parentNode;
            var oUL = parent.getElementsByTagName('UL')[0];
            if (!(oUL.firstChild.id == "helpbuttonID")) // Check if the element is already added
            {
                // If not - create and add the custom button
                oUL.style.width = "50px";
                var oLI = document.createElement("LI");
                oLI.id = "helpbuttonID"
                var A = document.createElement("A");
                oLI.appendChild(A);
                A.className = "helpbutton";
                A.style.cursor = "hand";
                A.href = "javascript:void(0)";
                A.title = "Help";
                A.click = callBackFunction1;
                A.onmousedown = callBackFunction1;
                oUL.insertBefore(oLI, oUL.firstChild);
            }
        }
        function callBackFunction1() {
            var lnk = document.getElementById("ctl00_ContentPlaceHolder1_UserGroupPopUpHelpLnk");
            window.open(lnk.value);
            return false;
        }
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePageMethods="true"
        EnablePartialRendering="true">
    </asp:ToolkitScriptManager>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="rgGroups"  LoadingPanelID="RadAjaxLoadingPanel1"/>
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <asp:UpdatePanel ID="uplGroups" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional"
        OnLoad="UpdatePanel_OnLoad">
        <ContentTemplate>
            <div id="rightside">
                <telerik:RadGrid ID="rgGroups" runat="server" AllowPaging="True" Width="100%" AllowMultiRowSelection="True"
                    GridLines="None" OnPageIndexChanged="rgGroups_PageIndexChanged"  OnItemCreated="rgGroups_ItemCreated"  OnItemDataBound="rgGroups_ItemDataBound"
                    OnNeedDataSource="rgGroups_NeedDataSource" AllowSorting="true" OnSortCommand="rgGroups_SortCommand"
                    OnPageSizeChanged="rgGroups_PageSizeChanged"
                    Culture="<%$ Resources:Culture %>">      <%--     OnItemEvent="rgGroups_ItemEvent"--%>
                    <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true" />
                    <ItemStyle Wrap="false" />
                    <HeaderStyle Wrap="false" />
                    <ClientSettings EnableRowHoverStyle="true" Resizing-AllowColumnResize="true" Resizing-EnableRealTimeResize="true">
                        <%--  <Scrolling AllowScroll="true"  UseStaticHeaders="true"  />--%>
                        <Selecting AllowRowSelect="true" />
                        <ClientEvents OnRowSelected="RowSelected" OnRowDeselected="RowSelected" OnColumnResized="ColumnResize"></ClientEvents>
                    </ClientSettings>
                    <SortingSettings EnableSkinSortStyles="false" />
                    <MasterTableView AutoGenerateColumns="false" CommandItemDisplay="Top" AllowNaturalSort="false">
                        <SortExpressions>
                            <telerik:GridSortExpression FieldName="GroupName" SortOrder="Ascending"></telerik:GridSortExpression>
                        </SortExpressions>
                        <CommandItemTemplate>
                            <telerik:RadToolBar ID="rtbGroups" runat="server" OnClientButtonClicked="onToolBarClientButtonClicking"
                                Height="26px" Width="100%">
                                <Items>
                                    <telerik:RadToolBarButton Text="<%$ Resources:New %>" CommandName="<%$ Resources:New %>"
                                        ImageUrl="~/Images/NewEnable2.png" Enabled='<%# rgGroups.EditIndexes.Count == 0 %>'>
                                    </telerik:RadToolBarButton>
                                    <telerik:RadToolBarButton Text="<%$ Resources:NewAD %>" CommandName="<%$ Resources:NewAD %>"
                                        ImageUrl="~/Images/NewEnable2.png" Enabled='<%# rgGroups.EditIndexes.Count == 0 %>' Value="NewAD">
                                    </telerik:RadToolBarButton>
                                    <telerik:RadToolBarButton Text="<%$ Resources:Delete %>" CommandName="<%$ Resources:Delete %>"
                                        ImageUrl="~/Images/imgDelBtnEnable.png" Enabled='<%# rgGroups.EditIndexes.Count > 0 %>'>
                                    </telerik:RadToolBarButton>
                                    <telerik:RadToolBarButton Text="<%$ Resources:Edit %>" CommandName="<%$ Resources:Edit %>"
                                        ImageUrl="~/Images/imgEditBtnEnable.png" Enabled='<%# rgGroups.EditIndexes.Count > 0 && rgGroups.EditIndexes.Count == 1%>'>
                                    </telerik:RadToolBarButton>
                                    <telerik:RadToolBarButton Text="<%$ Resources:Copy %>" CommandName="<%$ Resources:Copy %>"
                                        ImageUrl="~/Images/imgCopyBtnEnable.png" Enabled='<%# rgGroups.EditIndexes.Count > 0 && rgGroups.EditIndexes.Count == 1%>'>
                                    </telerik:RadToolBarButton>
                                    <telerik:RadToolBarButton CssClass="rightAligned">
                                        <ItemTemplate>
                                            <table style="background-color: White;" cellpadding="0" cellspacing="0">
                                                <tr>
                                                    <td valign="middle" style="width: 20px;" align="center">
                                                        <asp:Image ID="imgSearch" runat="server" ImageUrl="~/Images/Search-icon3.png" />
                                                    </td>
                                                    <td>
                                                        <telerik:RadTextBox ID="txtsearchusers" runat="server" AutoPostBack="true" MaxLength="20"
                                                            OnTextChanged="txtsearchusers_TextChanged" EmptyMessage="<%$ Resources:EnterToSearch %>"
                                                            Width="200px" CssClass="txtSearch">
                                                        </telerik:RadTextBox>
                                                    </td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </telerik:RadToolBarButton>
                                </Items>
                            </telerik:RadToolBar>
                        </CommandItemTemplate>
                        <Columns>
                            <telerik:GridClientSelectColumn  HeaderStyle-Width="35px"
                                ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" Resizable="false">
                            </telerik:GridClientSelectColumn>
                            <telerik:GridTemplateColumn UniqueName="GroupName" HeaderText="<%$ Resources:GroupName%>"
                                ItemStyle-Width="25%" HeaderStyle-Width="25%" FooterStyle-Width="25%" SortExpression="GroupName"
                                ShowSortIcon="true">
                                <ItemTemplate>
                                    <asp:LinkButton ID="lnkGroupName" runat="server" Text='<%# Eval("GroupName") %>'
                                        Font-Underline="true"></asp:LinkButton>
                                    <asp:HiddenField ID="hdnGroupName" runat="server" Value='<%# Eval("GroupName") %>' />
                                </ItemTemplate>
                                <ItemStyle Wrap="false" />
                                <HeaderStyle Wrap="false" />
                            </telerik:GridTemplateColumn>
                            <telerik:GridBoundColumn DataField="GroupType" HeaderText="<%$ Resources:GroupType %>"
                                UniqueName="GroupType" HeaderStyle-Width="88px"
                                  HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
                                <ItemStyle Wrap="false" />
                                <HeaderStyle Wrap="false" />
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn DataField="Description" HeaderText="<%$ Resources:Description %>"
                                UniqueName="Description"  ItemStyle-Width="25%" >
                                <ItemStyle Wrap="false" />
                                <HeaderStyle Wrap="false" />
                            </telerik:GridBoundColumn>
                            <telerik:GridTemplateColumn HeaderText="<%$ Resources:UsersinGroup%>" UniqueName="UsersInGroup" HeaderStyle-HorizontalAlign="Left" Resizable="false">
                                <ItemTemplate>
                                    <asp:Label ID="lblUsersinGroup" runat="server"></asp:Label>
                                    <telerik:RadToolTip ID="rtooltipUsersinGroup" runat="server" TargetControlID="lblUsersinGroup"
                                        RelativeTo="Element" Position="BottomCenter" EnableShadow="true" Height="30px"
                                        Width="120px">
                                    </telerik:RadToolTip>
                                    <asp:HiddenField ID="hdnGroupId" runat="server" Value='<%#Eval("GroupId")%>' />
                                </ItemTemplate>
                                <ItemStyle Wrap="false" />
                                <HeaderStyle Wrap="false" />
                            </telerik:GridTemplateColumn>
                        </Columns>
                    </MasterTableView>
                </telerik:RadGrid>
                
            </div>
            <script type="text/javascript">
                removeClass('ctl00_ContentPlaceHolder1_rgGroups_ctl00_ctl02_ctl00_rtbGroups');
            </script>
            <asp:Label ID="lblSearchText" runat="server" Visible="false"></asp:Label>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnBindUserGroups" EventName="Click" />
            <%--<asp:AsyncPostBackTrigger ControlID="btnDeleteUserGroups" EventName="Click" />--%>
        </Triggers>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="upHeight" runat="server">
        <ContentTemplate>
            <asp:HiddenField ID="hdngridPaging" runat="server" />
            <asp:HiddenField ID="hdnHeight" runat="server" />
        </ContentTemplate>
    </asp:UpdatePanel>
       <asp:HiddenField ID="hdnDomainCount" runat="server" />
    <asp:HiddenField ID="hdnRowIndex" runat="server" />
    <asp:HiddenField ID="hdnEditGroupId" runat="server" />
    <asp:HiddenField ID="UserGroupPopUpHelpLnk" runat="server" Value="<%$ Resources:UserGroupPopUpHelpPath %>" />
    <asp:Button ID="btnBindUserGroups" runat="server" OnClick="btnBindUserGroups_Click" />
    <%--<asp:Button ID="btnDeleteUserGroups" runat="server" OnClick="btnDeleteUserGroups_Click"/>--%>
    <script type="text/javascript" language="javascript">
        Telerik.Web.UI.RadWindowUtils.Localization =
        {
            "Close": getLabel("CloseWindow"),
            "OK": getLabel("OK"),
            "Cancel": getLabel("CancelWindow")
        }; 
    </script>
    <telerik:RadWindowManager ID="rdWMUserGroup" runat="server" VisibleOnPageLoad="false"
        KeepInScreenBounds="true" Modal="true" OnClientClose="OnClientClose" VisibleStatusbar="false"
        ShowContentDuringLoad="false">
        <Windows>
            <telerik:RadWindow runat="server" ID="rdWUserGroup" AutoSize="true" Behaviors="Move,Close,Resize"
                OnClientBeforeClose="BeforeCloseEditPage" OnClientShow="UserGroupsHelp" ReloadOnShow="true"
                IconUrl="../Images/userPerm.png">
            </telerik:RadWindow>
        </Windows>
    </telerik:RadWindowManager>
</asp:Content>

cs
public partial class UserGroups : SQWebBasePage
  {
      int TotalItemCount = 0;
      static string sWebUrl = string.Empty;
 
      protected void Page_Load(object sender, EventArgs e)
      {
          AuthenticateUser();
          init_js_culture_label();
          sWebUrl = init_getActiveDirectoryXmlFilePath();
 
          if (!IsPostBack)
          {
              List<ADProviderKeys> lstADProvider = ADProviderSettings.GetADProviderList();
              hdnDomainCount.Value = lstADProvider.Count.ToString();
 
              ViewState["PageLoad"] = "1";
              SQWUser objUser = SQWUserList.GetByName(Session["UserName"].ToString());
              string pageSize =GetPageSize(objUser, "UserGroups");
              if (pageSize == "All") // To show all records in the grid
              {
                  pageSize = GetTotalRecords();       
              }
              rgGroups.PageSize = pageSize == "0" ? 10 : Convert.ToInt32(pageSize);               
              BindGrid();
              ViewState["PageLoad"] = "";
              objUser = null;
  
          }
          Label lblPageTitle = (Label)Master.FindControl("MainSplitter").FindControl("RightContenePane").FindControl("lblPageTitle");
          lblPageTitle.Text = (string)GetLocalResourceObject("Title");
          // This code is to access the help file according to current content page.
          HiddenField helplnk = (HiddenField)Page.Master.FindControl("HelpLink");
          helplnk.Value = getLocalRessourceObjectForJS("UserGroupsHelpPath").ToString();
          SQWebNET.MasterPages.MasterPage oMasterPage = (SQWebNET.MasterPages.MasterPage)Page.Master;
          oMasterPage.PageName = "UserGroups";
      }
 
      #region This Method will be autheticated on every PageLoad to check the Session
      protected void AuthenticateUser()
      {
 
          if (Session["UserName"] == null || Convert.ToString(Session["UserName"]) == string.Empty)
          {
              Response.Redirect("~/Security/LoginPage.aspx");
          }
 
          if (Convert.ToString(Session["LoggedInAs"]) == "" || Convert.ToString(Session["LoggedInAs"]) == "ReportManager")
          {
              Server.Transfer("~/Security/Error.aspx?code=page");
          }
      }
 
      #endregion
 
      //protected void txtsearchusers_TextChanged(object sender, EventArgs e)
      //{
      //    BindGrid();
      //}
 
      public void BindGrid()
      {        
          string sFilter = lblSearchText.Text.ToString().Trim();      
          if (sFilter != string.Empty)
          {
              rgGroups.DataSource = SQWebNetClasses.SQWUserGroupList.SearchByName(sFilter);               
          }
          else
          {
              rgGroups.DataSource = SQWebNetClasses.SQWUserGroupList.GetGroupList();               
          }
          rgGroups.DataBind();
          if (Convert.ToString(ViewState["PageLoad"]) != "1" || rgGroups.PageSize == 10)
          {
              SetHeightGrid(rgGroups.PageSize);
          }
      }
 
      protected void SetHeightGrid(int pageSize)
      {
           
          SQWUser objUser = SQWUserList.GetByName(Session["UserName"].ToString());
          string oPagesize = GetPageSize(objUser, "UserGroups");//SQWUserList.GetPageSize(objUser, "UserGroups");
          string sFilter = lblSearchText.Text.Trim();
          int gridTotalCount = Convert.ToInt32(GetTotalRecords());
          if (oPagesize == "All")
          {
              pageSize = gridTotalCount;
          }           
 
          int heightToolbar = 35;
          int footer = 40;
          int gridHeight = (gridTotalCount < pageSize) ? (gridTotalCount * 25) : (pageSize * 25);
          gridHeight = gridHeight + heightToolbar + 30 + footer;
          hdnHeight.Value = gridHeight.ToString();
          objUser = null;         
 
      }
 
      //protected void rgGroups_ItemEvent(object sender, GridItemEventArgs e)
      //{
      //    if (e.EventInfo is GridInitializePagerItem)
      //    {
      //        TotalItemCount = (e.EventInfo as GridInitializePagerItem).PagingManager.DataSourceCount;
      //    }
      //}
      protected void rgGroups_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
      {
          if (e.Item is GridDataItem)
          {
              GridDataItem item = (GridDataItem)e.Item;
              TableCell cellGroupName = item["GroupName"];
              LinkButton lnkGroupName = (LinkButton)cellGroupName.FindControl("lnkGroupName");
              lnkGroupName.Attributes.Add("onclick", "return Edit('Grid','" + e.Item.ItemIndex.ToString() + "');");
 
              TableCell cellUsersInGroup = item["UsersInGroup"];
              HiddenField hdnGroupId = (HiddenField)cellUsersInGroup.FindControl("hdnGroupId");
              Label lblUsersinGroup = (Label)cellUsersInGroup.FindControl("lblUsersinGroup");
              RadToolTip rtooltipUsersinGroup = (RadToolTip)cellUsersInGroup.FindControl("rtooltipUsersinGroup");
              Guid groupID = new Guid(hdnGroupId.Value);
              string List = "";
              string formattedList = "";
              int count = 0;
              if (groupID != Guid.Empty)
              {
                  List<SQWUser> lstUsers = SQWUserList.GetAllByGroup(groupID);
 
                  foreach (SQWUser ug in lstUsers)
                  {
                      count++;
                      if (List == string.Empty)
                      {
                          List = ug.UserName;
                          formattedList = " " + ug.UserName;
                      }
                      else
                      {
                          if (count <= 10)
                          {
                              List += "," + ug.UserName;
                              formattedList += "<br/> " + ug.UserName;
                          }
                          if (count == 11)
                          {
                              List += "...";
                          }
                          if (count > 10 && count <= 50)
                          {
                              formattedList += "<br/> " + ug.UserName;
                          }
                          if (count > 50)
                          {
                              formattedList += "<br/> ...";
                              break;
                          }
                      }
                  }
              }
              lblUsersinGroup.Text = List;
              rtooltipUsersinGroup.Text = formattedList;
 
              TableCell cellGroupType = item["GroupType"];
              if (cellGroupType.Text.Trim() == "1")
              {
                  cellGroupType.Text = "SQ";
 
              }
              else if (cellGroupType.Text.Trim() == "0")
              {
                  cellGroupType.Text = "AD";
              }
          }
          else if (e.Item is GridCommandItem)
          {
              GridCommandItem item = (GridCommandItem)e.Item;
              RadTextBox rdTextBox = (RadTextBox)item.Controls[0].Controls[1].Controls[5].FindControl("txtsearchusers");
              rdTextBox.Text = lblSearchText.Text;
 
              List<ADProviderKeys> lstADProvider = ADProviderSettings.GetADProviderList();
              RadToolBar rtoolUserList = (RadToolBar)item.FindControl("rtbGroups");
              RadToolBarButton rbtn = (RadToolBarButton)rtoolUserList.FindItemByValue("NewAD");
              
              if (lstADProvider.Count == 0)
              {
                  rbtn.Enabled = false;
                   
              }
              else
              {
                  rbtn.Enabled = true;
                   
              }
          }          
      }
 
      protected void rgGroups_PageIndexChanged(object sender, GridPageChangedEventArgs e)
      {
          rgGroups.CurrentPageIndex = e.NewPageIndex;
          BindGrid();
      }
 
      protected void rgGroups_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
      {
          /* BindGrid() is not called here because Datbind does not work in  NeedDataSource Event*/
          // string sFilter = txtsearchusers.Text.ToString().Trim();
          string sFilter = lblSearchText.Text.ToString().Trim();
 
          if (sFilter != string.Empty)
          {
              rgGroups.DataSource = SQWebNetClasses.SQWUserGroupList.SearchByName(sFilter);
          }
          else
          {
              rgGroups.DataSource = SQWebNetClasses.SQWUserGroupList.GetGroupList();
 
          }
      }
 
      protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
      {
          if (e.Argument == "Rebind")
          {
             // BindGrid();
          }
          else if (e.Argument == "Delete")
          {
              DeleteGroups();
              //BindGrid();
          }
          else if (e.Argument == "Copy")
          {
              CopyGroups();               
          }
         // BindGrid();
          rgGroups.Rebind();
      }
 
      protected override void init_js_culture_label()
      {
          // Fill the array of culture label to cal in javascript by the javascript:getLabel(key)
 
          string[] labels = { "CreateNewGroup", "New", "Edit", "Delete", "Copy", "EditGroup", "DeleteConfirm", "StarQueryWeb", "SaveChanges", "NewAD", "OK", "CancelWindow", "CloseWindow", "Yes","No" };
          aJsPagelabel = labels;
          // Call the base class.
          base.init_js_culture_label();
      }
 
      //protected void btnDeleteUserGroups_Click(object sender, EventArgs e)
      //{
      //    DeleteGroups();
      //    BindGrid();
      //}
 
      protected void CopyGroups()
      {
          SQWUser objUser = SQWUserList.GetByName(Session["UserName"].ToString());
 
          foreach (GridItem grd in rgGroups.SelectedItems)
          {
              SQWUserGroup group = (SQWUserGroup)grd.DataItem;
              HiddenField h = (HiddenField)grd.FindControl("hdnGroupId");
              Guid groupId;
              Guid.TryParse(h.Value, out groupId);
              LinkButton lnkUserName = (LinkButton)grd.FindControl("lnkGroupName");
              string sUserName = lnkUserName.Text;
              if (sUserName.Trim() != string.Empty)
              {
                  group = SQWUserGroupList.GetByName(sUserName);
 
                  string newGroupName = GetCopyGroupName(group.GroupName);
                  SQWUserGroup objGroup = new SQWUserGroup();
                  objGroup.GroupId = Guid.NewGuid();
                  objGroup.GroupName = newGroupName;
                  objGroup.GroupType = (int)SQWebNetClasses.Utility.UserGroupType.StarQuery;//group.GroupType; duplicated group shud be SQ group
                  objGroup.Description = group.Description;
                  objGroup.ADDomain = group.ADDomain;
 
                  SQWUserGroupList.AddGroup(objGroup);
 
                  //List<SQWUserGroup> lstCurrentGroups = SQWUsersGroupsMappings.GetGroupsForUser(group.GroupId);
 
                  List<SQWUser> lstUsers = SQWUserList.GetAllByGroup(groupId);
                  List<SQWReportFile> lstReports = SQWUserGroupReportsMappings.GetAllByGroup(groupId);
                  foreach (SQWUser user in lstUsers)
                  {
                      //SQWUser oUserGroup = SQWUserList.GetByName(user.UserName);
                      SQWUsersGroupsMappings.AddUserGroupMapping(user.UserID, objGroup.GroupId);
 
                      // For User-Group-Reports Mapping //                       
 
                      foreach (SQWReportFile objuserName in lstReports)
                      {
                          SQWUsersReportsMappings.AddUserReportMapping(user.UserID, objuserName.ReportID, true);
                      }
                      // *End* //
 
                  }
                  List<SQWUserGroupMapping> lstUserGroupMappings = SQWUsersGroupsMappings.GetUsersForGroup(groupId);
 
                  foreach (SQWReportFile reports in lstReports)
                  {
                      //SQWReportFile objReportGroup = SQWReportFileList.GetByName(reports.ReportName);
                      SQWUserGroupReportsMappings.AddUserGroupReportMapping(reports.ReportID, objGroup.GroupId);
 
                      //// For User-Group-Reports Mapping //
                      //foreach (SQWUserGroupMapping objSQWUserGroupMapping in lstUserGroupMappings)
                      //{
                      //    SQWUsersReportsMappings.AddUserReportMapping(objSQWUserGroupMapping.UserId, reports.ReportID, true);
                      //}
                      //// *End* //
                  }
              }
          }
          alert(getLocalRessourceObjectForJS("MsgCopyReport").ToString());
          //alert("Group has been copied successfully.");
          //Response.Redirect("UserGroups.aspx");
          
      }
 
      protected string GetCopyGroupName(string oldGroupName)
      {
          List<string> existingNames = new List<string>();
          //existingNames = SQWReportFileList.GetAnalystFileList();
          foreach (SQWUserGroup col in SQWUserGroupList.GetGroupList())
              existingNames.Add(col.GroupName);
          return SQManager.GetNewValidName(oldGroupName, existingNames.ToArray(), '_', false);
      }
 
      protected void DeleteGroups()
      {
          foreach (GridItem grd in rgGroups.SelectedItems)
          {
              HiddenField h = (HiddenField)grd.FindControl("hdnGroupId");
              Guid groupid;
              Guid.TryParse(h.Value, out groupid);
              // Code to delete User from table
              SQWebNetClasses.SQWUserGroupList.DeleteGroup(groupid);
          }
          alert(getLocalRessourceObjectForJS("DeletedMesg").ToString());
          //Response.Redirect("UserGroups.aspx");
      }
 
      protected void alert(string message)
      {
          string title = getLocalRessourceObjectForJS("StarQueryWeb");
          string radalertscript = "<script language='javascript'>function f(){radalert('" + message + "', 330, 100,'" + title + "'); Sys.Application.remove_load(f);}; Sys.Application.add_load(f);</script>";
          ScriptManager.RegisterStartupScript(this, this.GetType(), "radalert", radalertscript, false);
      }
 
      protected void btnBindUserGroups_Click(object sender, EventArgs e)
      {
          BindGrid();
      }
 
      protected void txtsearchusers_TextChanged(object sender, EventArgs e)
      {
          RadInputControl rdInput = ((Telerik.Web.UI.RadInputControl)(sender));
          lblSearchText.Text = rdInput.Text.Trim();
          BindGrid();
          RadTextBox rdTextbox = (RadTextBox)(rgGroups.MasterTableView.GetItems(GridItemType.CommandItem)[0].Controls[0].Controls[1].Controls[5].FindControl("txtsearchusers"));
          rdTextbox.Text = rdInput.Text.Trim();
      }
 
      protected void rgGroups_SortCommand(object source, Telerik.Web.UI.GridSortCommandEventArgs e)
      {
          //Apply custom sorting
          GridSortExpression sortExpr = new GridSortExpression();
          switch (e.OldSortOrder)
          {
              case GridSortOrder.None:
                  sortExpr.FieldName = e.SortExpression;
                  sortExpr.SortOrder = GridSortOrder.Descending;
 
                  e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                  break;
              case GridSortOrder.Ascending:
                  sortExpr.FieldName = e.SortExpression;
                  sortExpr.SortOrder = rgGroups.MasterTableView.AllowNaturalSort ? GridSortOrder.None : GridSortOrder.Descending;
                  e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                  break;
              case GridSortOrder.Descending:
                  sortExpr.FieldName = e.SortExpression;
                  sortExpr.SortOrder = GridSortOrder.Ascending;
 
                  e.Item.OwnerTableView.SortExpressions.AddSortExpression(sortExpr);
                  break;
          }
          e.Canceled = true;
          rgGroups.Rebind();
      }
 
      protected virtual void UpdatePanel_OnLoad(object sender, EventArgs e)
      {
          if (Page.IsPostBack)
          {
              System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "AlertBox", "removeClass('ctl00_ContentPlaceHolder1_rgGroups_ctl00_ctl02_ctl00_rtbGroups');", true);
          }
      }
 
      protected void rgGroups_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
      {
          string PageLoad = Convert.ToString(ViewState["PageLoad"]);
 
          if (PageLoad != "1")
          {
              SQWPage sqwPage = new SQWPage();
 
              sqwPage.PageName = "UserGroups";
              SQWUser objUser = SQWUserList.GetByName(Session["UserName"].ToString());
              RadComboBox rcb = (RadComboBox)Session["PageSizeComboBox"];
 
              if (rcb != null)
              {
                  if (rcb.Text == getLocalRessourceObjectForJS("All").ToString())
                  {
                      sqwPage.PageSize = "All";
                  }
                  else
                  {
                      sqwPage.PageSize = e.NewPageSize.ToString();
                  }
              }
              else
              {
                  sqwPage.PageSize = e.NewPageSize.ToString();
              }
 
              if (objUser != null)
              {
                  SQWUserList.EditPageSizeSettings(objUser, sqwPage);
              }
 
              objUser = null;
              Session["superadminPageSizeText_UserGroups"] = sqwPage.PageSize;
          }
          Session["superadminPageSizeValue_UserGroups"] = e.NewPageSize; // has put in the session since when new User is added or Edited . it comes back from pop up page and current page gets refreshed so Viewstate is not used.
          SetHeightGrid(e.NewPageSize);
 
      }
 
      private string GetPageSize(SQWUser objUser, string page)
      {
          string oPagesize = "10";
          if (Convert.ToString(Session["LoggedInAs"]) != "superadmin" && objUser != null)
          {
              oPagesize = SQWUserList.GetPageSize(objUser, "UserGroups");
          }
          else
          {
              if (Convert.ToString(Session["superadminPageSizeValue_UserGroups"]) == string.Empty)
              {
                  Session["superadminPageSizeValue_UserGroups"] = oPagesize;
 
              }
              else
              {
                  oPagesize = Convert.ToString(Session["superadminPageSizeValue_UserGroups"]);
                  if (Convert.ToString(Session["superadminPageSizeText_UserGroups"]) == "All")
                  {
                      oPagesize = "All";
                  }
              }
          }
          return oPagesize;
      }
 
      protected string GetTotalRecords()
      {
          string pageSize = "10";
          string sFilter = lblSearchText.Text.Trim();
          if (sFilter != string.Empty)
          {
              pageSize = SQWebNetClasses.SQWUserGroupList.SearchByName(sFilter).Count.ToString();
          }
          else
          {
              pageSize = SQWebNetClasses.SQWUserGroupList.GetGroupList().Count.ToString();
          }
          return pageSize;
      }
 
      protected void rgGroups_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
      {
          if (e.Item is GridPagerItem)
          {
              GridPagerItem pagerItem = (GridPagerItem)e.Item;
              hdngridPaging.Value = "0";
 
              if (pagerItem.Paging.IsFirstPage)
              {
                  if (pagerItem.Paging.PageCount == 1 || pagerItem.Paging.PageCount == 0)
                  {
                      hdngridPaging.Value = "3";
                  }
                  else
                  {
                      hdngridPaging.Value = "1";
                  }
              }
 
              else if (pagerItem.Paging.IsLastPage)
              {
                  hdngridPaging.Value = "2";
              }
 
              SQWUser objUser = SQWUserList.GetByName(Session["UserName"].ToString());
              //string pageSize = SQWUserList.GetPageSize(objUser, "UserGroups");
              string pageSize = GetPageSize(objUser, "UserGroups");
              RadComboBox cb = (e.Item as GridPagerItem).FindControl("PageSizeComboBox") as RadComboBox;
              cb.Items.Clear();
 
              RadComboBoxItem item = new RadComboBoxItem("10", "10");
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
 
              if (cb.Items.FindItemByValue("10") == null)
                  cb.Items.Add(item);
 
              item = new RadComboBoxItem("20", "20");
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
 
              if (cb.Items.FindItemByValue("20") == null)
                  cb.Items.Add(item);
 
              item = new RadComboBoxItem("50", "50");
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
 
              if (cb.Items.FindItemByValue("50") == null)
                  cb.Items.Add(item);
 
              item = new RadComboBoxItem("100", "100");
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
 
              if (cb.Items.FindItemByValue("100") == null)
                  cb.Items.Add(item);
 
              item = new RadComboBoxItem("200", "200");
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
 
              if (cb.Items.FindItemByValue("200") == null)
                  cb.Items.Add(item);
 
              TotalItemCount = Convert.ToInt32(GetTotalRecords());
              if (cb.Items.FindItemByValue(TotalItemCount.ToString()) == null)
              {
                  item = new RadComboBoxItem(getLocalRessourceObjectForJS("All").ToString(), TotalItemCount.ToString());
              }
              else
              {
                  int total = TotalItemCount + 1;
                  item = new RadComboBoxItem(getLocalRessourceObjectForJS("All").ToString(), total.ToString());
              }
              item.Attributes.Add("ownerTableViewId", rgGroups.MasterTableView.ClientID);
              cb.Items.Add(item);
 
              cb.Items.Sort(new PagerRadComboBoxItemComparer());
              //cb.FindItemByText(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;
              if (cb.Text == getLocalRessourceObjectForJS("All").ToString() || pageSize == "All" || Convert.ToString(Session["superadminPageSizeText_UserGroups"]) == "All")//if (pageSize == "total")
              {
                  cb.FindItemByText(getLocalRessourceObjectForJS("All").ToString()).Selected = true;
              }
              else
              {
                  cb.FindItemByValue(e.Item.OwnerTableView.PageSize.ToString()).Selected = true;
              }
              Session["PageSizeComboBox"] = cb;
 
              objUser = null;
          }        
      }
  }

3 Answers, 1 is accepted

Sort by
0
Iana Tsolova
Telerik team
answered on 15 Nov 2011, 04:36 PM
Hello Ankit,

Please remove the ASP:UpdatePanel and ajaxify the grid thouggh the RadAjaxManager by adding a setting where the grid updates itself.
Note that it is strongly recommended not to use more than one ajax control for ajaxifying the same page content.

Best wishes,
Iana Tsolova
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now
0
Somnath
Top achievements
Rank 1
answered on 16 Nov 2011, 06:26 AM
Hi
I have tried with commenting update panel ,
but still getting same error whenever i try to make any change in grid through radjaax_request.
First request completes successfully then i got this error in error console of FF

Error: uncaught exception: [Exception... "An invalid or illegal string was specified"  code: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)"  location: "http://localhost/SQWebNET/ScriptResource.axd?d=gumzQ2oRMzwzsnNMMz4tEtfD3-F8Ve26kBpsS1IkM9ocQe4PE415WY-gfCZiuPQ30&t=7844759b Line: 292"]

and next tym if try something i get this error

Error: $find("ctl00_ContentPlaceHolder1_RadAjaxManager1") is null
Source File: http://localhost/SQWebNET/UserManagement/UserGroups.aspx
Line: 63

Please need urgent help.

0
Accepted
Iana Tsolova
Telerik team
answered on 16 Nov 2011, 03:56 PM
Hi Ankit,

What if you replace the ToolkitScriptManager with RadScriptManager, do you observe the same issue? If yes, I would ask you to add the provided code to a runnable sample and open a formal support ticket so I can forward it to our developers for further research.

Regards,
Iana Tsolova
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now
Tags
General Discussions
Asked by
Somnath
Top achievements
Rank 1
Answers by
Iana Tsolova
Telerik team
Somnath
Top achievements
Rank 1
Share this question
or