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

Urgent!! Open RadWindows from GridButtonColumn in server side!

1 Answer 102 Views
Grid
This is a migrated thread and some comments may be shown as answers.
July
Top achievements
Rank 2
July asked on 04 Oct 2012, 01:17 PM
Hi!!!

I have an issue trying to open radwindow from GridButtonColumn.
This is my scenario:
- Master Page: contains the declaration of usercontrol
- Content: contain grid  - Delete command open by server side radwindow with dynamically text
- user control. contains a radwindow.

Master page.aspx: 
<%@ Register TagPrefix="UC" TagName="RadWindowsAction" Src="/UI/Admin/UserControls/Grid/Popups/DeleteRow.ascx" %>


<body>   <form runat="server">
     <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true">
        <Scripts>
         <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
          
        </Scripts>
    </telerik:RadScriptManager>
    <telerik:RadAjaxLoadingPanel runat="server" Skin="Vista" ID="loadTV" Width="300px" Height="120%" />
    <telerik:RadAjaxLoadingPanel runat="server" Skin="Vista" ID="LoadginPanel1" IsSticky="true"
        CssClass="LoadingPanel" />
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
         <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Notification" />
                     <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                     <telerik:AjaxUpdatedControl ControlID="WindowsAction" />
                </UpdatedControls>
            </telerik:AjaxSetting>
                     
           
            <telerik:AjaxSetting AjaxControlID="ImageButtonSearch">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="btnHidde">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
                      <telerik:AjaxSetting AjaxControlID="RadFilter1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadFilter1" />
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="lnkQuery">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="lblUserOnline">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="ContentPlaceHolder1" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="lnkCloseAssume">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="ContentPlaceHolder1" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="btnHidde">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="ContentPlaceHolder1" LoadingPanelID="LoadginPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="centerBody" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
           
            <telerik:AjaxSetting AjaxControlID="tvWorkspace">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RibbonBarMenu" />
                    <telerik:AjaxUpdatedControl ControlID="tvWorkspace"   />
                                       
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <asp:HiddenField ID="hddheight" runat="server" ></asp:HiddenField>
    <telerik:RadAjaxPanel ID="pnlPanelApp" runat="server" Height="100%" Width="100%">
   
        <div id="UserOnline" runat="server">
            <asp:Label ID="lblAssume" runat="server" CssClass="UserOnlineText" />
            <asp:LinkButton ID="lblUserOnline" runat="server" CssClass="UserOnlineText" OnClick="lblUserOnline_Click"></asp:LinkButton>
            <asp:LinkButton ID="lblogOff" runat="server" CssClass="UserOnlineText" OnClick="lblogOff_Click"></asp:LinkButton>
            <asp:LinkButton ID="lnkCloseAssume" runat="server" CssClass="UserOnlineText" OnClick="lnkCloseAssume_Click"></asp:LinkButton>
        </div>
        
            <div id="header" runat="server" />
           
            <div id="centerBody" runat="server">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            
            <div id="footer" runat="server" />
        
        <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
            <Windows>
                <telerik:RadWindow ID="Dialog" runat="server" Height="200px" Width="300px" Skin="Vista"
                    Left="15%" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" VisibleStatusbar="false"
                    Behaviors="Close" />
                <telerik:RadWindow ID="InformationDialog" runat="server" Height="100px" Width="300px"
                    Skin="Vista" Left="15%" ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true"
                    VisibleStatusbar="false" Behaviors="Close" />
                <telerik:RadWindow ID="UserAssumeDialog" runat="server" Height="80px" Width="250px"
                    Skin="Vista" Left="15%" ReloadOnShow="true" ShowContentDuringLoad="true" Modal="true"
                    VisibleStatusbar="false" Behaviors="Close" />
            </Windows>
        </telerik:RadWindowManager>
        <UC:Notification ID="Notification" runat="server" />
          <UC:RadWindowsManager ID="WindowManagerTopMenu" runat="server"></UC:RadWindowsManager>
           <UC:RadWindowsAction ID="WindowsAction" runat="server"></UC:RadWindowsAction>
    </telerik:RadAjaxPanel>
    
    </form>
</body>


Content page.aspx:


<telerik:RadAjaxLoadingPanel runat="server" Skin="Vista" ID="LoadginPanel1" IsSticky="true"
        CssClass="LoadingPanel" />
    <telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server">
        <AjaxSettings>
           <telerik:AjaxSetting AjaxControlID="Grid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>        
             
            <telerik:AjaxSetting AjaxControlID="btnDelete">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
             <telerik:AjaxSetting AjaxControlID="gbcbtnDelete">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="Grid" LoadingPanelID="LoadginPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManagerProxy>
    <UC:header runat="server" ID="headerPage" />
    <div id="containerSubWHelp">
        <telerik:RadGrid ID="Grid" runat="server" AutoGenerateColumns="False" OnNeedDataSource="CommunityGrid_NeedDataSource"
            OnUpdateCommand="CommunityGrid_UpdateCommand" OnInsertCommand="CommunityGrid_InsertCommand"
            OnItemCommand="CommunityGrid_ItemCommand" OnPreRender="CommunityGrid_PreRender" OnItemDataBound="CommunityGrid_ItemDataBound"
            OnItemCreated="CommunityGrid_ItemCreated" OnDeleteCommand="CommunityGrid_DeleteCommand">
            <MasterTableView DataKeyNames="Id">
                <Columns>
                    <telerik:GridClientSelectColumn CommandName="Select" UniqueName="Select" HeaderStyle-Width="28px"
                        Resizable="false" Reorderable="false">
                    </telerik:GridClientSelectColumn>
                    <telerik:GridTemplateColumn UniqueName="IsActive" DataField="IsActive" Reorderable="false"
                        HeaderStyle-Width="55px" AllowFiltering="true" Resizable="false">
                        <ItemTemplate>
                            <asp:ImageButton ID="ActiveIcon" runat="server" CommandName="Active"></asp:ImageButton>
                            <asp:CheckBox ID="lblIsActive" runat="server" Checked='<%# (DataBinder.Eval(Container.DataItem,"IsActive") is DBNull ?false:Eval("IsActive")) %>'
                                Visible="false" />
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="TemplateEditColumn" HeaderStyle-Width="28px"
                        Reorderable="false" AllowFiltering="false" Resizable="false">
                        <ItemTemplate>
                            <asp:ImageButton ID="EditLink" runat="server" ImageUrl="/UI/Images/pencil.png"></asp:ImageButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridEditCommandColumn HeaderStyle-Width="28px" UniqueName="EditCommandColumn"
                        Reorderable="false" ButtonType="ImageButton" EditImageUrl="/UI/Images/grid_edit.png"
                        Resizable="false">
                    </telerik:GridEditCommandColumn>
                    <telerik:GridButtonColumn UniqueName="btnDelete"  ButtonType="ImageButton"
                        Reorderable="false" CommandName="Delete" 
                        HeaderStyle-Width="28px" Resizable="false" ImageUrl="/UI/Images/cross.png" />



                    <telerik:GridTemplateColumn DataField="Id" UniqueName="Id" Visible="false">
                        <InsertItemTemplate>
                            <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Bind("Id") %>' ReadOnly="true"
                                Enabled="false" />
                        </InsertItemTemplate>
                        <EditItemTemplate>
                            <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Eval("Id") %>' ReadOnly="true" />
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="Name" DataField="Name">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtName" Width="90%" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'></asp:TextBox>
                            <br />
                            <asp:RequiredFieldValidator ID="rfFirstName" runat="server" ControlToValidate="txtName"
                                Display="Dynamic" CssClass="validator" ErrorMessage="*" />
                            <asp:CustomValidator ID="cvName" runat="server" ControlToValidate="txtName" CssClass="validator"
                                Display="Dynamic" OnServerValidate="cvName_ServerValidate"  />
                            <asp:RegularExpressionValidator ID="reName" ControlToValidate="txtName" runat="server"
                                ValidationExpression="^[0-9a-zA-Z\s]{1,125}$" CssClass="validator" Display="Dynamic" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn UniqueName="Description" DataField="Description">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtDescription" Width="90%" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="lblDescription" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
                <CommandItemTemplate>
                    <UC:AddButtons ID="AddButtons" runat="server" />
                </CommandItemTemplate>
            </MasterTableView>
            <ClientSettings>
                <ClientEvents OnRowDblClick="rowDblClick" />
            </ClientSettings>
        </telerik:RadGrid>
    </div>
          
</asp:Content>


ContentPage.aspx.cs

 private DeleteRow _deleteRow;
 protected void CommunityGrid_DeleteCommand(object sender, GridCommandEventArgs e)
        {
            
                    if (e.Item == null)
                    {
                        e.Canceled = true;
                        return;
                    }




                    try
                    {
                        string communityId = (e.Item as GridDataItem).GetDataKeyValue("Id").ToString();
                        var dataItem = e.Item as GridDataItem;


                        Session["Name"] = ((Label)dataItem.FindControl("lblName")).Text;


                        _deleteRow.Name = ((Label)dataItem.FindControl("lblName")).Text;


                        if (Master.Organization.HasFieldAssociated(communityId) > 0)
                            Session["MessageDelete"] =
                                _resources.GetString("DeleteCommunityUsersText", new CultureInfo(Master.Culture)).
                                    Replace("{0}",
                                            Session["Name"].
                                                ToString());
                        _deleteRow.CommonMessage = true;                                                                                            
                        _deleteRow.ShowNotification();

                        
                        //string scriptstring = "showDeleteRowDialog();";
                        //ScriptManager.RegisterStartupScript(Page, Page.GetType(), "radalert", scriptstring, true);


                    }
                    catch (Exception ex)
                    {
                        _notification.LoadCatchNotification(ex, typeof(Communities).FullName);
                    }
               
        }

  private void GetNotificationControl()
        {
            _notification = (Master.FindControl("Notification") as Notification);
            _deleteRow = (Master.FindControl("WindowsAction") as DeleteRow);
        }


UserControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DeleteRow.ascx.cs" Inherits="WebSearch.UI.Admin.UserControls.Grid.Popups.DeleteRow" %>
<script type="text/javascript" src="/UI/Admin/Scripts/Form.js"></script>
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">


        function cancelDeleteRow() {
            var window = $find("<%= DeleteActionRow.ClientID%>");
           
            window.close();
        }


        function deleteRow(sender, args) {
            var window = $find("<%= DeleteActionRow.ClientID%>");
            window.close(); 
             refreshGrid('Remove');
        }


       
    </script>
</telerik:RadCodeBlock>
 
<telerik:RadWindowManager ID="RadWindowManagerActionRows" runat="server">
    <Windows>
        <telerik:RadWindow ID="DeleteActionRow" runat="server" Skin="Vista" BackColor="Aquamarine"
            ReloadOnShow="true" ShowContentDuringLoad="false" Modal="true" VisibleStatusbar="false"
            Behaviors="Move, Close" Animation="FlyIn" Width="550px" Height="110px" IconUrl="/UI/Images/cross.png">
            <ContentTemplate>
              
                <div class="information">
                    <center>
                  
                        <asp:Label ID="lblDeleteItem" CssClass="LabelInformation" runat="server">
                        </asp:Label>
                    </center>
                </div>
                <br />
                <div style="width: 100%; text-align: center;">
                    <telerik:RadButton ID="btnDelete" runat="server" Skin="Vista" Width="140px" AutoPostBack="false"
                        OnClientClicked="deleteRow">
                        <Icon PrimaryIconUrl="/UI/Images/cross.png" PrimaryIconWidth="21px" PrimaryIconHeight="25px"
                            PrimaryIconTop="3px" PrimaryIconLeft="9px" />
                    </telerik:RadButton>
                    <telerik:RadButton ID="btnCancel" runat="server" Skin="Vista" Width="100px" CausesValidation="False"
                        ToolTip="Cancel" OnClientClicked="cancelDeleteRow" AutoPostBack="false">
                        <Icon PrimaryIconUrl="/UI/Images/cancel.png" PrimaryIconWidth="21px" PrimaryIconHeight="25px"
                            PrimaryIconTop="3px" PrimaryIconLeft="9px" />
                    </telerik:RadButton>
                </div>
            </ContentTemplate>
        </telerik:RadWindow>
    </Windows>
</telerik:RadWindowManager>


UserControl.aspx.cs

  public partial class DeleteRow : System.Web.UI.UserControl
    {
        #region Properties&Variables


        private readonly StackTrace _stackTrace = new StackTrace();
        
        public string Title { get; set; }
        public bool CommonMessage { get; set; }
        public string ObjectName { get; set; }
        public string Name { get; set; }
        public string SpecialMessage { get; set; }


        private string _culture;
        private ResourceManager _resources;
        
        


        #endregion




        private void GetInfo()
        {
            _resources = WebSearch.Components.GeneralFunctions.Resources.GetAdminResources("Grids");
            _culture = WebSearch.Components.GeneralFunctions.Variables.CurrentCulture();
        }


        public void ShowNotification()
        {
            GetInfo();


            if(CommonMessage)
            {
                lblDeleteItem.Text = _resources.GetString(lblDeleteItem.ID, new CultureInfo(_culture)).Replace("{object}", ObjectName).Replace("{0}", Name); 
            }else
            {
                lblDeleteItem.Text = SpecialMessage.Replace("{object}", ObjectName).Replace("{0}", Name); 
            }




            LoadButton();


            DeleteActionRow.VisibleOnPageLoad = true;
        }






        private void LoadButton()
        {
            
            btnCancel.Text = _resources.GetString(btnCancel.ID,new CultureInfo(_culture));


            btnDelete.Text = _resources.GetString(btnDelete.ID,
                                                new CultureInfo(_culture));


            DeleteActionRow.Title = _resources.GetString("DeleteItemTitle", new CultureInfo(_culture)).Replace("{object}", ObjectName).Replace("{0}", Name);
        }


       


    }
}

I have got this   version Telerik.Web.UI_2012_2_724_Dev_hotfix

What I  am doing wrong?

1 Answer, 1 is accepted

Sort by
0
Maria Ilieva
Telerik team
answered on 09 Oct 2012, 11:20 AM
Hello July,

Please note that it is not a supported scenario to use RadAjaxManager and RadAjaxPanel to update the same controls on the page or have the RadAjaxPanel control added in the RadAjaxManager settings. So please reconfigure the ajax settings using the suggestion described in the help topics below and let me know how it goes:
http://www.telerik.com/help/aspnet-ajax/ajax-user-controls.html
http://www.telerik.com/help/aspnet-ajax/ajax-masterpage.html
http://www.telerik.com/help/aspnet-ajax/ajax-masterpage-update-everywhere.html

Maria Ilieva
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
Grid
Asked by
July
Top achievements
Rank 2
Answers by
Maria Ilieva
Telerik team
Share this question
or