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

Edit PopUp Window from Rad Grid

1 Answer 397 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Biswajit
Top achievements
Rank 1
Biswajit asked on 17 Mar 2012, 03:12 PM
I want to edit a row in the grid by opening a popup.
I am able to open a editable popup window on click of edit button in the grid by calling a java script function in ItemDataBound event at server side.  When i open the popup using window.radopen(), i am able to pass grid row data as arguments of radopen(). But in the pop up, page_load is not getting called and hence i am not able to catch the query string values. As a result i am unable to edit the row.
Please advise. Find the code below.

aspx code
--------------
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ManageOverrides.aspx.cs"
    Inherits="AdminWebsite.ManageOverrides" MasterPageFile="~/Admin.Master" %>
 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
 
 
 
     <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
     
        function ShowEditForm(EntityID, EntityType, MaintenanceLong, MaintenanceShort, InitialLong, InitialShort, DayTradeLong, DayTradeShort) {
         window.radopen("ManageOverridesEdit.aspx?EntityID=" + EntityID + "&EntityType=" + EntityType + "&MaintenanceLong=" + MaintenanceLong + "&MaintenanceShort=" + MaintenanceShort + "&InitialLong=" + InitialLong + "&InitialShort=" + InitialShort + "&DayTradeLong=" + DayTradeLong + "&DayTradeShort=" + DayTradeShort, "ManageOverridesEdit");
     
        }
       
               
    </script>
    </telerik:RadCodeBlock>
     <telerik:radwindowmanager id="RadWindowManager2" runat="server" enableshadow="true"
            skin="Office2007" initialbehavior="Close" behavior="Close,Move">
        <Windows>
             
                <telerik:RadWindow ID="ManageOverridesEdit1" runat="server" Title="Manage Overrides Edit"
                Skin="Office2007" Height="500px" Width="800px" Left="100px" ReloadOnShow="false"
                VisibleStatusbar="true" ShowContentDuringLoad="true" Modal="true" Behavior="Minimize,Maximize,Close,Move" />
              
            
        </Windows>
    </telerik:radwindowmanager>
<asp:Panel ID="pnlSecuritySearchResults" runat="server" Width="60%" Visible="false"
<telerik:RadGrid ID="rgSecuritySearchResults" runat="server" AutoGenerateColumns="False"
                            GridLines="None"  Skin="Office2007"  AllowPaging="True"  OnItemDataBound="rgSecuritySearchResults_ItemDataBound"
                            DataSourceID="SecurityOverridesDS" OnDeleteCommand="rgSecuritySearchResults_ItemCommand" >
                            <MasterTableView DataSourceID="SecurityOverridesDS" DataKeyNames="EntityID,EntityType,CUSIP">
                            <RowIndicatorColumn>
                            <HeaderStyle Width="20px"></HeaderStyle>
                            </RowIndicatorColumn>
                            <ExpandCollapseColumn>
                            <HeaderStyle Width="20px"></HeaderStyle>
                            </ExpandCollapseColumn>
                                <Columns
                                  <telerik:GridTemplateColumn DataField="Action" HeaderButtonType="TextButton" HeaderText="Action"
                                                UniqueName="Action" >
                                                <HeaderStyle HorizontalAlign="Center"  />
                                                <ItemStyle HorizontalAlign="Center" />
                                                <ItemTemplate>
                                                    <asp:ImageButton ID="ImgDelete" ToolTip="Click here to Delete" CommandName="Delete"
                                                         runat="server" Text="Delete" ImageUrl="images/Delete.gif" OnClientClick="if (!confirm('Are You sure you want to delete the selected security override ?')) return false;" />
                                                    <asp:ImageButton ID="imgBtnEdit" ImageUrl="images/radgrid/Edit.gif" ToolTip="Click here to Edit" Text="Edit"
                                                        runat="server" CommandName="Edit" />                                                   
                                                </ItemTemplate>
                                            </telerik:GridTemplateColumn>                                                                    
                                   <telerik:GridTemplateColumn HeaderText="Entity ID" UniqueName="EntityID"
                                        DataField="EntityID" SortExpression="EntityID">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblEntityID" Text='<%# DataBinder.Eval(Container.DataItem, "EntityID")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Entity Type" UniqueName="EntityType"
                                        DataField="EntityType" SortExpression="Symbol">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblEntityType" Text='<%# DataBinder.Eval(Container.DataItem, "EntityType")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridBoundColumn HeaderText="Symbol" UniqueName="Symbol"
                                        DataField="Symbol" SortExpression="Symbol">
                                    </telerik:GridBoundColumn>                                                               
                                    <telerik:GridBoundColumn HeaderText="Correspondent Code" UniqueName="CorrespondentCode"
                                        DataField="CorrespondentID" SortExpression="CorrespondentCode">                                                                   
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn HeaderText="Office Code" UniqueName="OfficeCode"
                                        DataField="OfficeID" SortExpression="OfficeCode">                                                                   
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn HeaderText="Rep ID" UniqueName="RepID"
                                        DataField="RepID" SortExpression="RepID">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn HeaderText="Account Number" UniqueName="AccountNumber"
                                        DataField="AccountNumber" SortExpression="AccountNumber">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn HeaderText="Maintenance Long" UniqueName="MaintenanceLong"
                                        DataField="MaintenanceLong" SortExpression="MaintenanceLong">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblMaintenanceLong" Text='<%# DataBinder.Eval(Container.DataItem, "MaintenanceLong")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                     <telerik:GridTemplateColumn HeaderText="Maintenance Short" UniqueName="MaintenanceShort"
                                        DataField="MaintenanceShort" SortExpression="MaintenanceShort">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblMaintenanceShort" Text='<%# DataBinder.Eval(Container.DataItem, "MaintenanceShort")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Initial Long" UniqueName="InitialLong"
                                        DataField="InitialLong" SortExpression="InitialLong">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblInitialLong" Text='<%# DataBinder.Eval(Container.DataItem, "InitialLong")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                     <telerik:GridTemplateColumn HeaderText="Initial Short" UniqueName="InitialShort"
                                        DataField="InitialShort" SortExpression="InitialShort">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblInitialShort" Text='<%# DataBinder.Eval(Container.DataItem, "InitialShort")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridTemplateColumn HeaderText="Day Trade Long" UniqueName="OldMaintenanceLong"
                                        DataField="OldMaintenanceLong" SortExpression="OldMaintenanceLong">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblDayTradeLong" Text='<%# DataBinder.Eval(Container.DataItem, "OldMaintenanceLong")%>'></asp:Label>
                                         </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                     <telerik:GridTemplateColumn HeaderText="Day Trade Short" UniqueName="OldMaintenanceShort"
                                        DataField="OldMaintenanceShort" SortExpression="OldMaintenanceShort">
                                        <ItemTemplate>
                                                    <asp:Label runat="server" ID="lblDayTradeShort" Text='<%# DataBinder.Eval(Container.DataItem, "OldMaintenanceShort")%>'></asp:Label>
                                         </ItemTemplate>
                                     </telerik:GridTemplateColumn>                                
                                      <telerik:GridBoundColumn HeaderText="Modified By" UniqueName="ModifiedBy"
                                        DataField="ModifiedBy" SortExpression="ModifiedBy">
                                       </telerik:GridBoundColumn>
                                         <telerik:GridBoundColumn HeaderText="Modified Date" UniqueName="ModifiedDate"
                                        DataField="ModifiedDate" SortExpression="ModifiedDate">
                                    </telerik:GridBoundColumn>                                                                 
                                </Columns>
                            </MasterTableView>
                            <ClientSettings EnableRowHoverStyle="true">
                                <Selecting AllowRowSelect="True" />
                            </ClientSettings>
                            <FilterMenu EnableTheming="True">
                                <CollapseAnimation Duration="200" Type="OutQuint" />
                            </FilterMenu>
                        </telerik:RadGrid>
                                    
                  </asp:Panel>                                
 
          
                
     
    <asp:ObjectDataSource ID="odsCorrespondentFirm" runat="server"
OldValuesParameterFormatString="original_{0}"
SelectMethod="RetrieveAllFirmsFromCorrespondents"
TypeName="AdminWebsite.CorrespondentDataSource" onselecting="odsCorrespondentFirm_Selecting">
</asp:ObjectDataSource>
 
<asp:ObjectDataSource ID="SecurityOverridesDS" runat="server"
    OldValuesParameterFormatString="original_{0}"
    onselecting="SecurityOverridesDS_Selecting"
    SelectMethod="RetrieveAllSecurityOverridessWithEqualFilter"
    TypeName="AdminWebsite.SecurityRequirementOverridesDataSource"
        DeleteMethod="DeleteSecurityRequirementOverridesByID"
        InsertMethod="CreateSecurityRequirementOverrides"
        UpdateMethod="UpdateSecurityRequirementOverridesByID">
        <DeleteParameters>
            <asp:Parameter Name="tokenId" Type="Object" />
            <asp:Parameter DbType="Guid" Name="callerId" />
            <asp:Parameter Name="entityID" Type="String" />
            <asp:Parameter Name="entityType" Type="String" />
            <asp:Parameter Name="cusip" Type="String" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="tokenId" Type="Object" />
            <asp:Parameter DbType="Guid" Name="callerId" />
            <asp:Parameter Name="entityID" Type="String" />
            <asp:Parameter Name="entityType" Type="String" />
            <asp:Parameter Name="cusip" Type="String" />
            <asp:Parameter Name="maintenanceLong" Type="Decimal" />
            <asp:Parameter Name="maintenanceShort" Type="Decimal" />
            <asp:Parameter Name="initialLong" Type="Decimal" />
            <asp:Parameter Name="initialShort" Type="Decimal" />
            <asp:Parameter Name="description" Type="String" />
        </UpdateParameters>
        <SelectParameters>
            <asp:Parameter Name="tokenId" Type="Object" />
            <asp:Parameter DbType="Guid" Name="callerId" />  
            <asp:ControlParameter ControlID="txtSymbol" Name="Symbol" PropertyName="Text"
                Type="String" />
            <asp:ControlParameter Name="firm" Type="String" ControlID="rcbFirm" PropertyName="SelectedValue" />       
            <asp:ControlParameter ControlID="rcbOverrideLevel" Name="overrideLevel"
                PropertyName="SelectedValue" Type="String" DefaultValue = "-1" />
        </SelectParameters>
         
    </asp:ObjectDataSource>
</asp:Content>

aspx.cs code
------------------

protected void rgSecuritySearchResults_ItemDataBound(object sender, GridItemEventArgs e)
        {
 
            if (e.Item is GridDataItem)
            {
                GridDataItem dataItem = (GridDataItem)e.Item;
 
                ImageButton imgBtnEdit = dataItem.FindControl("imgBtnEdit") as ImageButton;
 
 
                Label lblEntityID = dataItem.FindControl("lblEntityID") as Label;
                Label lblEntityType = dataItem.FindControl("lblEntityType") as Label;
                Label lblMaintenanceLong = dataItem.FindControl("lblMaintenanceLong") as Label;
                Label lblMaintenanceShort = dataItem.FindControl("lblMaintenanceShort") as Label;
                Label lblInitialLong = dataItem.FindControl("lblInitialLong") as Label;
                Label lblInitialShort = dataItem.FindControl("lblInitialShort") as Label;
                Label lblDayTradeLong = dataItem.FindControl("lblDayTradeLong") as Label;
                Label lblDayTradeShort = dataItem.FindControl("lblDayTradeShort") as Label;
 
 
                string strEntityID = lblEntityID.Text;
                string strEntityType = lblEntityType.Text;
                string strMaintenanceLong = lblMaintenanceLong.Text;
                string strMaintenanceShort = lblMaintenanceShort.Text;
                string strInitialLong = lblInitialLong.Text;
                string strInitialShort = lblInitialShort.Text;
                string strDayTradeLong = lblDayTradeLong.Text;
                string strDayTradeShort = lblDayTradeShort.Text;
 
 
                imgBtnEdit.Attributes.Add("onclick", "javascript:ShowEditForm('" + strEntityID + "' ,'" + strEntityType + "','" + strMaintenanceLong + "','" + strMaintenanceShort + "','" + strDayTradeLong + "','" + strDayTradeShort + "'); return false;");
 
            }
 
     


Page load event in popup window is not fired when window opens and hence am not able to capture query strings passed 
through window.radopen()to new popup window. I can see the query strings values in the status bar of pop up window.
But i cant capture the query string and hence cant edit  grid row
If i can fire the page load event in pop up, then problem is solved.
Please advise on this or any alternate approaches.

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 18 Mar 2012, 06:49 PM
Hello Biswajit,

to set edit mode in RadGrid you must have do post.

<head runat="server">
    <title></title>
    <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
        <script type="text/javascript">
            function openpopupforedit(id) {
                var RadAjaxManager1 = $find("<%= RadAjaxManager1.ClientID %>");
                if (RadAjaxManager1) {
                    RadAjaxManager1.ajaxRequest("openwindow," + id);
                }
            }
            function ResponseEnd(sender, args) {
 
                alert(args._eventArgument);
 
                // Open Radwindow here
                // split this argument and use the data key
            }
        </script>
    </telerik:RadCodeBlock>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        </telerik:RadScriptManager>
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
            <ClientEvents OnResponseEnd="ResponseEnd" />
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadAjaxManager1" />
                        <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <telerik:RadWindowManager ID="RadWindowManager1" runat="server">
        </telerik:RadWindowManager>
        <telerik:RadGrid ID="RadGrid1" runat="server" OnNeedDataSource="RadGrid1_NeedDataSource"
            AutoGenerateColumns="false" OnItemDataBound="RadGrid1_ItemDataBound">
            <MasterTableView DataKeyNames="ID">
                <Columns>
                    <telerik:GridBoundColumn DataField="ID" UniqueName="ID" HeaderText="ID">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server">edit</asp:LinkButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>
    </div>
    </form>
</body>
protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
       {
           dynamic data = new[] {
             new { ID = 1, Name ="name1"},
             new { ID = 2, Name = "name2"},
             new { ID = 3, Name = "name3"},
             new { ID = 4, Name = "Name4"},
              new { ID = 5, Name ="name5"}};
           RadGrid1.DataSource = data;
       }
 
       protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
       {
           string[] str = e.Argument.Split(',');
 
           if (str.Length > 1 && str[0] == "openwindow")
           {
               foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
               {
                   if (str[1].ToString() == item.GetDataKeyValue("ID").ToString())
                   {
                       item.Edit = true;
                   }
               }
               RadGrid1.Rebind();
           }
       }
 
       protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
       {
           if (e.Item is GridDataItem)
           {
               GridDataItem item = e.Item as GridDataItem;
               LinkButton LinkButton1 = item.FindControl("LinkButton1") as LinkButton;
               string strID = item.GetDataKeyValue("ID").ToString();
               LinkButton1.Attributes.Add("onclick", "openpopupforedit('"+ strID +"'); return false;");
           }
       }


Let me know if any concern.


Thanks,
Jayesh Goyani
Tags
Grid
Asked by
Biswajit
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or