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

Refresh load and bind RadGrid in parent file

1 Answer 125 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
laxman
Top achievements
Rank 1
laxman asked on 04 Dec 2010, 07:14 AM
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using BusinessLogic;
using System.Collections.Generic;
using System.Data.SqlClient;
using Microsoft.ApplicationBlocks.Data;
using Telerik.Web.UI;
  
  
public partial class Designers : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        RadAjaxManager manager = RadAjaxManager.GetCurrent(Page);
        manager.AjaxSettings.AddAjaxSetting(manager, rdDesigner);
        manager.AjaxRequest += new RadAjaxControl.AjaxRequestDelegate(RadAjaxManager1_AjaxRequest);  
  
    }
    protected void RadAjaxManager1_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e)
    {
        if (e.Argument == "Rebind")
        {
            rdDesigner.MasterTableView.SortExpressions.Clear();
            rdDesigner.MasterTableView.GroupByExpressions.Clear();
            rdDesigner.Rebind();
        }
        else if (e.Argument == "RebindAndNavigate")
        {
            rdDesigner.MasterTableView.SortExpressions.Clear();
            rdDesigner.MasterTableView.GroupByExpressions.Clear();
            rdDesigner.MasterTableView.CurrentPageIndex = rdDesigner.MasterTableView.PageCount - 1;
            rdDesigner.Rebind();
        }
    }
    protected void rdDesigner_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        try
        {
            //int Designerid = Convert.ToInt32(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["DesignerId"].ToString());
  
        }
        catch (Exception ex)
        {
  
            throw ex;
        }
  
    }
    protected void rdDesigner_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        try
        {
            if (e.Item is Telerik.Web.UI.GridDataItem)
            {
  
                ImageButton editButton = (ImageButton)e.Item.FindControl("EditButton");
                editButton.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["DesignerId"], e.Item.ItemIndex);
            }
            //if (e.Item is Telerik.Web.UI.GridDataItem)
            //{
            //ImageButton editButton = (ImageButton)e.Item.FindControl("EditButton");
            //editButton.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["DesignerId"], e.Item.ItemIndex);
  
            //}
        }
        catch (Exception ex)
        {
  
            throw ex;
        }
  
    }
    protected void rdDesigner_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        try
        {
            DataSet ds = SqlHelper.ExecuteDataset(Globals.ConnectionString, CommandType.StoredProcedure, "getDesigners", null);
            rdDesigner.DataSource = ds;
            //ViewState["DataSetCustomer"] = ds;
        }
        catch (Exception ex)
        {
  
            throw ex;
        }
    }
  
    // protected void EditButton_Onclick(object sender, EventArgs e)
    // {
    //   try
    // {
  
    // }
    //catch (Exception ex)
    //{
  
    //  throw ex;
    //}
    // }
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Designers.aspx.cs" MasterPageFile="~/MasterPage.master"
    Inherits="Designers" %>
  
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="cntBody" ContentPlaceHolderID="Content" runat="Server">
    <telerik:RadWindowManager ID="RadWindowManager1" runat="server">
        <Windows>
            <telerik:RadWindow ID="UserListDialog" runat="server" Title="Editing record" Height="300px"
                Width="300px" Left="150px" ReloadOnShow="true" ShowContentDuringLoad="false"
                Modal="true" />
        </Windows>
    </telerik:RadWindowManager>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="rdDesigner" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="rdDesigner" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <%-- <script type="text/javascript">
        Telerik.Web.UI.RadWindow.prototype.oldClose = Telerik.Web.UI.RadWindow.prototype.close;
        Telerik.Web.UI.RadWindow.prototype.close = function(arg) {
        if (this.get_name() == "Wardrobe") {
            top.location.reload();
            // var res = confirm("Are you sure you want to close RadWindow");
            //if (res) 
            this.oldClose(arg);
        }
        else {
            this.oldClose(arg);
        }
    
        }
       function ShowEditForm(id) 
        {
        window.radopen("ManageDesigners.aspx?UID=" + id, "UserListDialog");
        return false;
        }           
        function ShowInsertForm() 
        {
         window.radopen("ManageDesigners.aspx", "UserListDialog");
         return false;
        }
        function RowDblClick(sender, eventArgs) {
        window.radopen("ManageDesigners.aspx?UID=" + eventArgs.getDataKeyValue("DesignerId"), "UserListDialog");
        }
        function GetRadWindow() {
        var oWindow = null;
        if (window.radWindow) oWindow = window.radWindow;
        else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
        return oWindow;
        }
        </script>--%>
  
        <script type="text/javascript">
                function ShowEditForm(id, rowIndex) {
                     
                   // var grid = $find("<%= rdDesigner.ClientID %>");
                   // var rowControl = grid.get_masterTableView().get_dataItems()[rowIndex].get_element();
                   // grid.get_masterTableView().selectItem(rowControl, true);
  
                    window.radopen("ManageDesigners.aspx?UID=" + id, "UserListDialog");
                    return false;
                }
                function ShowInsertForm() {
                    window.radopen("ManageDesigners.aspx", "UserListDialog");
                    return false;
                }
                function RowDblClick(sender, eventArgs) {
                    window.radopen("ManageDesigners.aspx?UID=" + eventArgs.getDataKeyValue("DesignerId"), "UserListDialog");
                }
                function refreshGrid(arg)
                {
                    if (!arg) {
                        $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("Rebind");
                    }
                    else {
                        $find("<%= RadAjaxManager1.ClientID %>").ajaxRequest("RebindAndNavigate");
                    }
                }
                
  
        </script>
  
    </telerik:RadCodeBlock>
    <asp:Button ID="btnDesigner" runat="server" Text="Add Designer" OnClientClick="return ShowInsertForm()"
        Visible="True" />
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <telerik:RadGrid ID="rdDesigner" runat="server" AutoGenerateColumns="False" AllowPaging="True"
        AllowSorting="True" GridLines="None" Height="100%" OnItemCreated="rdDesigner_ItemCreated"
        PageSize="10" OnItemCommand="rdDesigner_ItemCommand" OnNeedDataSource="rdDesigner_NeedDataSource">
        <MasterTableView DataKeyNames="DesignerId" ClientDataKeyNames="DesignerId" EditMode="InPlace">
            <RowIndicatorColumn>
                <HeaderStyle Width="20px" />
            </RowIndicatorColumn>
            <ExpandCollapseColumn>
                <HeaderStyle Width="20px" />
            </ExpandCollapseColumn>
            <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
            <Columns>
                <telerik:GridTemplateColumn UniqueName="TemplateColumn1">
                    <ItemTemplate>
                        <asp:ImageButton ID="EditButton" runat="server" ImageUrl="~/Images/edit.gif" />
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridBoundColumn DataField="DesignerName" HeaderText="Name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="DesignerDescription" HeaderText="Description">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="DisplayOrder" HeaderText="Display Order">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="Status" HeaderText="Status">
                </telerik:GridBoundColumn>
            </Columns>
        </MasterTableView>
    </telerik:RadGrid>
</asp:Content>
<asp:Content ID="Content2" runat="server" ContentPlaceHolderID="headerPlaceHolder">
    <style type="text/css">
        .style1
        {
            height: 12;
            width: 97%;
        }
        .style2
        {
            height: 215;
            width: 97%;
        }
        .style3
        {
            height: 9;
            width: 97%;
        }
    </style>
</asp:Content>
these are my parent.cs and Aspx file
and
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BusinessLogic;
using System.IO;
using Microsoft.ApplicationBlocks.Data;
using Telerik.Web.UI;
using System.Data.SqlClient;
  
public partial class ManageDesigners : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            if (Request.QueryString["UID"] != null)
            {
                imgBanner.Visible = true;
                imgLogo.Visible = true;
                lblError.Visible = false;
                int aspnetUserId = Convert.ToInt32(Request.QueryString["UID"].ToString());
                Users user = new Users();
                DataSet ds = user.getDesigner(aspnetUserId);
                DataTable Dt = ds.Tables[0];
                txtDescription.Text = Dt.Rows[0]["DesignerDescription"].ToString();
                txtDesignerName.Text = Dt.Rows[0]["DesignerName"].ToString();
                txtDisplayOrder.Text = Dt.Rows[0]["DisplayOrder"].ToString();
                ddlStatus.SelectedValue = Dt.Rows[0]["Status"].ToString();
                string Bannerfolder = MapPath("~/DesignerBanner/");
                DirectoryInfo BannerDir = new DirectoryInfo(Bannerfolder);
                imgBanner.ImageUrl = Bannerfolder + Dt.Rows[0]["BannerImage"].ToString();
                imgBanner.DataBind();
                string logoFolder = MapPath("~/DesignerLogo/");
                DirectoryInfo LogodDir = new DirectoryInfo(logoFolder);
                imgLogo.ImageUrl = logoFolder + Dt.Rows[0]["LogoImage"].ToString();
                imgLogo.DataBind();
                btnAdd.Text = "Update";
            }
        }
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        try
        {
            if (Request.QueryString["UID"] != null)
            {
  
                Users user = new Users();
                Int32 DesignerId = Convert.ToInt32(Request.QueryString["UID"].ToString());
                imgBanner.Visible = true;
                imgLogo.Visible = true;
                string filename = Convert.ToString(System.IO.Path.GetFileNameWithoutExtension(fuBannerImage.FileName) + "_Banner");
                string fileExtention = Convert.ToString(System.IO.Path.GetExtension(fuBannerImage.FileName));
                string bannerImage = filename + fileExtention;
                string filelogoname = Convert.ToString(System.IO.Path.GetFileNameWithoutExtension(fuLogoImage.FileName) + "_Logo");
                string filelogoextention = Convert.ToString(System.IO.Path.GetExtension(fuLogoImage.FileName));
                string LofoFile = filelogoname + filelogoextention;
                int DisplayMember = Convert.ToInt32(txtDisplayOrder.Text);
                string status = ddlStatus.SelectedItem.Text;
                bool Screename = Convert.ToBoolean(1);
                fuBannerImage.SaveAs(Server.MapPath("~/DesignerBanner/") + bannerImage);
                fuLogoImage.SaveAs(Server.MapPath("~/DesignerLogo/") + LofoFile);
  
                user.UpdateDesigners(DesignerId, txtDesignerName.Text, bannerImage, LofoFile, txtDescription.Text, DisplayMember, status, Screename);
                //Reset();
            }
            else
            {
                imgBanner.Visible = false;
                imgLogo.Visible = false;
                Users user = new Users();
                string filename = Convert.ToString(System.IO.Path.GetFileNameWithoutExtension(fuBannerImage.FileName) + "_Banner");
                string fileExtention = Convert.ToString(System.IO.Path.GetExtension(fuBannerImage.FileName));
                string bannerImage = filename + fileExtention;
                string filelogoname = Convert.ToString(System.IO.Path.GetFileNameWithoutExtension(fuLogoImage.FileName) + "_Logo");
                string filelogoextention = Convert.ToString(System.IO.Path.GetExtension(fuLogoImage.FileName));
                string LofoFile = filelogoname + filelogoextention;
                int DisplayMember = Convert.ToInt32(txtDisplayOrder.Text);
                string status = ddlStatus.SelectedItem.Text;
                bool Screename = Convert.ToBoolean(1);
                fuBannerImage.SaveAs(Server.MapPath("~/DesignerBanner/") + bannerImage);
                fuLogoImage.SaveAs(Server.MapPath("~/DesignerLogo/") + LofoFile);
  
                user.AddDesigners(txtDesignerName.Text, bannerImage, LofoFile, txtDescription.Text, DisplayMember, status, Screename);
                //Reset();
            }
            //ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind();", true);  
        }
        catch (Exception ex)
        {
  
            throw ex;
        }
    }
  
    private void Reset()
    {
        try
        {
            txtDescription.Text = string.Empty;
            txtDesignerName.Text = string.Empty;
            txtDisplayOrder.Text = string.Empty;
            ddlStatus.SelectedIndex = -1;
        }
        catch (Exception ex)
        {
  
            throw ex;
        }
    }
    protected void txtDesignerName_TextChanged(object sender, EventArgs e)
    {
        try
        {
            string DesignerName = txtDesignerName.Text;
            Users user = new Users();
            DataSet dsDesigner = user.getCheckDesigner(DesignerName);
            DataTable dtDesigner = dsDesigner.Tables[0];
            if (dtDesigner.Rows.Count > 0)
            {
                lblError.Visible = true;
                txtDesignerName.Text = string.Empty;
            }
            else
            {
                lblError.Visible = false;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}
And ASpx file
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ManageDesigners.aspx.cs"
    Inherits="ManageDesigners" %>
  
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <link href="includes/syd.css" rel="stylesheet" type="text/css" />
  
   <script language="javascript" type="text/javascript">
          function CloseAndRebind(args) {
                GetRadWindow().BrowserWindow.refreshGrid(args);
                GetRadWindow().close();
            }
  
            function GetRadWindow() {
                var oWindow = null;
                if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
                else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
  
                return oWindow;
            }
  
            function CancelEdit() {
                GetRadWindow().close();
            }
  
    </script>
  
</head>
<body style="background-color: #C1C1C1">
    <form id="Form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" Skin="Sitefinity"
        DecoratedControls="All"  />
    <table width="100%">
        <tr>
            <td style="width: 30%">
            </td>
            <td style="width: 15%">
                Designer Name
            </td>
            <td style="width: 25%">
                <asp:UpdatePanel ID="upDesigner" runat="server">
                    <ContentTemplate>
                        <asp:TextBox ID="txtDesignerName" runat="server" OnTextChanged="txtDesignerName_TextChanged"
                            AutoPostBack="True"></asp:TextBox>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </td>
            <td style="width: 30%">
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <asp:Label ID="lblError" runat="server" ForeColor="Red" Text="Designer Already In List"
                            Visible="False"></asp:Label>
                        <asp:RequiredFieldValidator ID="rfvtxtDesignerName" runat="server" ErrorMessage="*"
                            ControlToValidate="txtDesignerName"></asp:RequiredFieldValidator>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                Banner Image
            </td>
            <td>
                <asp:Image ID="imgBanner" runat="server" Height="50px" Width="100px" Visible="false" />
                <br />
                <asp:FileUpload ID="fuBannerImage" runat="server" />
            </td>
            <td>
                 </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                Logo Image
            </td>
            <td>
                <asp:Image ID="imgLogo" runat="server" Height="50px" Width="100px" Visible="false" />
                <br />
                <asp:FileUpload ID="fuLogoImage" runat="server" />
            </td>
            <td>
                 </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                Description
            </td>
            <td>
                <asp:TextBox ID="txtDescription" runat="server" Style="width: 181px" TextMode="MultiLine"
                    Height="50px" Width="196px"></asp:TextBox>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="rfvDescription" runat="server" ErrorMessage="*" ControlToValidate="txtDescription"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                Display order
            </td>
            <td>
                <asp:TextBox ID="txtDisplayOrder" runat="server"></asp:TextBox>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ErrorMessage="*"
                    ControlToValidate="txtDisplayOrder"></asp:RequiredFieldValidator>
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                Status
            </td>
            <td>
                <asp:DropDownList ID="ddlStatus" runat="server" Width="130px">
                    <asp:ListItem Value="1">Active</asp:ListItem>
                    <asp:ListItem Value="0">InActive</asp:ListItem>
                </asp:DropDownList>
            </td>
            <td>
                   
            </td>
        </tr>
    </table>
    <table border="0" cellspacing="0" cellpadding="0" style="width: 100%; vertical-align: top">
        <tr>
            <td align="center" style="vertical-align: top;">
                <asp:Button ID="btnAdd" Text="Add" runat="server" TabIndex="15" EnableViewState="False"
                    OnClick="btnAdd_Click" />
                <input type="button" onclick="CloseAndRebind()" value="Cancel" />
            </td>
        </tr>
    </table>
    </form>
</body>
</html>


And I m try to reload my radDrid After Managedesigner.aspx window Close but Its not happening please help me

1 Answer, 1 is accepted

Sort by
0
Veli
Telerik team
answered on 09 Dec 2010, 09:02 AM
Hi laxman,

You need to attach an OnClientClose event handler for RadWindowManager:

<telerik:RadWindowManager ID="RadWindowManager1" runat="server"
    OnClientClose="windowClose">
</telerik:RadWindowManager>

In the event handler function, you can find the RadGrid client instance and call rebind():

function windowClose(sender, args)
{
    var grid = $find("<%= rdDesigner.ClientID %>");
    grid.rebind();
}

Note that for that to work with AJAX, you need to add an AJAX setting to RadAjaxManager specifying RadGrid updates itself:

<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="rdDesigner">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="rdDesigner" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>

Also, note that you are defining the same AJAX setting both in the markup and in the Page_Load event in the code-behind. You should not duplicate AJAX settings.

Greetings,
Veli
the Telerik team
Browse the vast support resources we have to jumpstart your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.
Tags
General Discussions
Asked by
laxman
Top achievements
Rank 1
Answers by
Veli
Telerik team
Share this question
or