How do you recommend refreshing the Grid client-side?

3 posts, 0 answers
  1. Nathan J Pledger
    Nathan J Pledger avatar
    95 posts
    Member since:
    Apr 2006

    Posted 03 Feb 2009 Link to this post

    Hi,

    I have a grid:

    <telerik:RadGrid ID="radGridUsers" runat="server" 
                             AllowAutomaticDeletes="false"  
                             AllowAutomaticInserts="false" 
                             AllowAutomaticUpdates="false" 
                             AllowCustomPaging="false" 
                             AllowMultiRowSelection="true" 
                             AllowPaging="true" 
                             AllowSorting="true" 
                             AutoGenerateColumns="false" 
                             AutoGenerateDeleteColumn="false" 
                             AutoGenerateEditColumn="false" 
                             GroupingEnabled="false" 
                             PageSize="20" 
                             ShowFooter="false" 
                             ShowGroupPanel="false" 
                             ShowHeader="true" 
                             ShowStatusBar="false" 
                             Skin="Vista" 
                             style="width:auto"                          
                             > 
                            <ClientSettings AllowColumnHide="false" AllowColumnsReorder="false" AllowDragToGroup="false" AllowExpandCollapse="false" AllowRowHide="false" AllowRowsDragDrop="false" EnablePostBackOnRowClick="false" EnableRowHoverStyle="true" ReorderColumnsOnClient="true"
                                <ClientEvents /> 
                                <ClientMessages /> 
                                <Selecting AllowRowSelect="true" EnableDragToSelectRows="true" /> 
                                <Resizing AllowColumnResize="true" AllowRowResize="false" ClipCellContentOnResize="true" EnableRealTimeResize="true" ResizeGridOnColumnResize="false" /> 
                                <Scrolling AllowScroll="false" /> 
                            </ClientSettings>     
                            <MasterTableView ClientDataKeyNames="Username"
                                <Columns> 
                                    <telerik:GridClientSelectColumn CommandName="Select" DataType="System.Boolean"
                                        <HeaderStyle Width="20" /> 
                                        <ItemStyle Width="20" /> 
                                    </telerik:GridClientSelectColumn> 
                                    <telerik:GridTemplateColumn HeaderText="Status" UniqueName="userIcon"
                                     
                                    </telerik:GridTemplateColumn> 
                                    <telerik:GridBoundColumn DataField="Username" AllowSorting="true" AllowFiltering="false" 
                                        DataType="System.String" Display="true" HeaderText="Username" ReadOnly="true" Resizable="true" ShowSortIcon="true" UniqueName="Username"></telerik:GridBoundColumn> 
                                    <telerik:GridTemplateColumn UniqueName="windowsAccount" HeaderText="Windows Account"
                                     
                                    </telerik:GridTemplateColumn> 
                                    <telerik:GridBoundColumn DataField="FirstName" AllowSorting="true" AllowFiltering="false" 
                                        DataType="System.String" Display="true" HeaderText="First Name" ReadOnly="true" Resizable="true" ShowSortIcon="true" UniqueName="Username"></telerik:GridBoundColumn> 
                                    <telerik:GridBoundColumn DataField="LastName" AllowSorting="true" AllowFiltering="false" 
                                        DataType="System.String" Display="true" HeaderText="Last Name" ReadOnly="true" Resizable="true" ShowSortIcon="true" UniqueName="Username"></telerik:GridBoundColumn> 
                                    <telerik:GridBoundColumn DataField="Position" AllowSorting="true" AllowFiltering="false" 
                                        DataType="System.String" Display="true" HeaderText="Position" ReadOnly="true" Resizable="true" ShowSortIcon="true" UniqueName="Username"></telerik:GridBoundColumn> 
                                     
                                </Columns> 
                            </MasterTableView> 
                              
                              
                         
                             
                        </telerik:RadGrid> 

    The user can display Windows which can be used to modify the settings of the items. When the RadWindows close, I have some JavaScript firing. I would like this JavaScript to refresh the grid to reflect the change, preferably in an AJAXy way.

    How would you recommend doing this? I could put it in an RadAjaxPanel, but wouldn't that be expensive, bandwidth-wise?




  2. Shinu
    Shinu avatar
    17764 posts
    Member since:
    Mar 2007

    Posted 04 Feb 2009 Link to this post

    Hi Nathan,

    Give a try with the following client side code on closing the RadWindow to refresh the Grid.

    ASPX:
     

     
    <telerik:RadWindow ID="RadWindow1" runat="server" Behavior="Close"  OnClientClose="OnClientClose"  VisibleOnPageLoad="true" ></telerik:RadWindow>

     

    JS:
    <script type="text/javascript"
      
    function OnClientClose() 
    var oWin=GetRadWindow(); 
     
      if (oWin) 
        { 
           oWin.BrowserWindow.refreshGrid() 
            oWin.Close(); 
        } 
     
     
    function GetRadWindow() 
        var oWindow = null
       if (window.radWindow) 
        { 
          oWindow = window.radWindow; 
          alert(oWindow) 
        } 
      else if (window.frameElement.radWindow) 
       { 
        oWindow = window.frameElement.radWindow; 
       } 
      return oWindow; 
     
     }  
     
     
     function refreshGrid() 
         { 
           $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");   
         } 
    </script> 


    CS:
     protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) 
        { 
            if (e.Argument == "Rebind"
            { 
     
                RadGrid1.Rebind(); 
            } 
        } 


    You can also refer the following demo link where the Grid is being refreshed on the client side.
    Window Editing

    Thanks
    Shinu



  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Nathan J Pledger
    Nathan J Pledger avatar
    95 posts
    Member since:
    Apr 2006

    Posted 05 Feb 2009 Link to this post

    Thanks for that.
    That works ... for one window!
    My other window is not $finding the RadAjaxManager.

    Both Windows call the following callback:

        <script type="text/javascript" language="javascript"
     
            function migOnWindowClosedHandler(sender, eventArgs) { 
                var ajaxMgr=$find("ctl00_ctl00_radAjaxManager"); 
                if (ajaxMgr) { 
                    ajaxMgr.ajaxRequest("RebindUsersGrid"); 
                } 
                else { 
                    window.location = window.location; 
                } 
            } 
             
        </script> 
     
     

    Both Windows are opened using the following function (with different URLs):

    function migOpenDialog(url, width, height) { 
        var oManager=GetRadWindowManager(); 
        var oWnd=oManager.open(url) 
        oWnd.setSize(width,height); 
        oWnd.center(); 
        oWnd.set_modal(true) 
        oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move+Telerik.Web.UI.WindowBehaviors.Close); 

    Neither Window interacts with the RadWindowManager or the host page.
    I seem to be having a few problems with $find not finding controls that are there, and this behavour seems the strangest of all. Am I misusing it?
Back to Top