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

Custom(TemplateColumn) Edit Column is lost when the Grid Settings is saved and page is revisited.

6 Answers 149 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Kamal
Top achievements
Rank 1
Kamal asked on 14 May 2015, 02:50 PM
Hi
I'm troubled a lot with this strange problem in one of my ASPX page. Background, in all pages including this one, the columns are resizable and reorderable and I have got this GridSettingsPersister.SaveSettings() for all pages to retain the user preferences.In all these pages I'm using inbuilt GridEditCommandColumn. In problem page, I'm using GridTemplateColumn as first column that has a link to open custom edit pop up. Now the problem is that when I reorder the column and save setting by gsPersister and redirect and then come back to the page; that GridTemplateColumn with edit link is gone, like it did not existed at all. I cannot figure out why my Custom(TemplateColumn) Edit Column is lost when I save the Grid Settings and revisit the page. I have other custom Template Columns as well with hyperlinks, which stay intact.
Please help.

The aspx code:
 
<div id="divlistInUsers">
                            <telerik:RadGrid ID="RGSiteConfig" runat="server" AllowPaging="True" AllowSorting="True"
                                AutoGenerateColumns="False"
                                OnNeedDataSource="RGSiteConfig_NeedDataSource" OnInsertCommand="RGSiteConfig_InsertCommand"
                                OnItemDataBound="RGSiteConfig_ItemDataBound" OnItemCommand="RGSiteConfig_ItemCommand"
                                OnPreRender="RGSiteConfig_PreRender"
                                AllowFilteringByColumn="true" EnableLinqExpressions="false"
                                Skin="Silk"
                                PageSize="10" Width=""
                                HeaderStyle-Font-Bold="true"
                                AlternatingItemStyle-BackColor="#f0f0f0">
                                <GroupingSettings CaseSensitive="false" />
                                <PagerStyle Mode="NextPrevAndNumeric" />
                                <MasterTableView CommandItemDisplay="Top" DataKeyNames="SiteID" InsertItemPageIndexAction="ShowItemOnFirstPage" CommandItemSettings-ShowRefreshButton="false">
                                    <Columns>
<%--<telerik:GridTemplateColumn HeaderStyle-Width="10px" AllowFiltering="false" AllowSorting="false" Resizable="true" Reorderable="false">
                                            <ItemTemplate>
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
<telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderStyle-Width="40px" Resizable="false" Reorderable="false" />--%>
                                        <telerik:GridTemplateColumn HeaderStyle-Width="40px" AllowFiltering="false" AllowSorting="false" Resizable="true" Reorderable="false">
                                            <ItemTemplate>
                                                <asp:LinkButton ID="lnkEdit" runat="server" Text="Edit"
CommandArgument='<%# Eval("SiteID").ToString() + "," +
Eval("ContractorID").ToString() + "," +
Eval("CountryOfOrigin").ToString() + "," +
Eval("SiteIsActive").ToString() + "," +
Eval("ContractorIsActive").ToString() + "," +
Eval("CSIEnabled").ToString() + "," +
Eval("MCSInstalled").ToString() + "," + Eval("IsCM").ToString()%>'
                                                    CommandName="EditSiteConfig" CausesValidation="false" />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridBoundColumn SortExpression="SiteName" DataField="SiteName" HeaderText="MCS Site Name" HeaderStyle-Width="150" />
                                        <telerik:GridTemplateColumn HeaderText="Mapped PSA Companies" AllowFiltering="false" AllowSorting="false" HeaderStyle-Width="150">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignTCACompanies" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfTCAs")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn SortExpression="Total" HeaderText="Users(UPM/CP)" Visible="true" AllowFiltering="false" HeaderStyle-Width="100">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignOperatorsToSite" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfOperators") + "/" + DataBinder.Eval(Container.DataItem, "NoOfCPUsers")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn SortExpression="NoOfPermissions" HeaderText="Permissions" DataField="NoOfPermissions" AllowFiltering="false" HeaderStyle-Width="100">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignPermissionsToSite" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfPermissions")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn HeaderStyle-Width="145px" AllowFiltering="false" AllowSorting="false"
                                            Resizable="false" Reorderable="false" HeaderText="Export CM Details">
                                            <ItemTemplate>
                                                <asp:HyperLink ID="lnkExportInGrid" runat="server" Text="Export CM Details" NavigateUrl='<%# Eval("SiteID", "~/DownloadFile.aspx?SiteID={0}")%>' Target="_blank" />
                                                <input runat="server" type="hidden" id="hdTotal" value='<%# DataBinder.Eval(Container.DataItem, "Total")%>' />
                                                <input runat="server" type="hidden" id="hdNoOfIPs" value='<%# DataBinder.Eval(Container.DataItem, "NoOfIPs")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                    </Columns>
                                    <EditFormSettings EditFormType="Template" CaptionFormatString="Add/Edit Site" FormCaptionStyle-Font-Bold="true">
                                        <PopUpSettings Width="555px" Modal="true" />
                                        <FormTemplate>
                                            <table cellpadding="2" cellspacing="5" border="0" width="100%" rules="none"
                                                style="border-collapse: collapse;">
                                                <tr>
                                                    <td>Site ID</td>
                                                    <td>
                                                        <asp:Label ID="lblSiteID" runat="server" Text='<%# Bind("SiteID")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Contractor ID</td>
                                                    <td>
                                                        <asp:Label ID="lblContractorID" runat="server" Text='<%# Bind("ContractorID")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>MCS Site Name</td>
                                                    <td>
                                                        <asp:TextBox ID="txtSiteName" runat="server" Text='<%# Bind("SiteName")%>'
                                                            MaxLength="50" />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Country</td>
                                                    <td>
                                                        <asp:DropDownList ID="lbCountryCode" runat="server" />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Uses LS Web</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkContractorActive" runat="server" Enabled="false" Checked='<%# (DataBinder.Eval(Container.DataItem,
"ContractorIsActive") == DBNull.Value ? true : Eval("ContractorIsActive"))%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Uses CSI App</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkCSIEnabled" runat="server" Checked='<%# (DataBinder.Eval(Container.DataItem, "CSIEnabled").ToString() == "True" ? true : false)%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <input runat="server" type="hidden" id="hdSiteName" value='<%# Bind("SiteName")%>' />
                                                        <input runat="server" type="hidden" id="hdCountry" value='<%# Bind("CountryOfOrigin")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td></td>
                                                    <td>
                                                        <asp:Button ID="btnUpdate" Text="Insert" runat="server" CommandName="PerformInsert"
                                                            CausesValidation="false" CssClass="button"></asp:Button>
                                                        <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="false"
                                                            CommandName="Cancel" CssClass="button"></asp:Button>
                                                    </td>
                                                </tr>
                                            </table>
                                        </FormTemplate>
                                    </EditFormSettings>
                                </MasterTableView>
                                <ClientSettings AllowColumnsReorder="true" ColumnsReorderMethod="Reorder" ReorderColumnsOnClient="true">
                                    <ClientEvents OnRowDblClick="" OnPopUpShowing="onPopUpShowing" />
                                    <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" AllowColumnResize="True" />
                                </ClientSettings>
                            </telerik:RadGrid>
                        </div>

6 Answers, 1 is accepted

Sort by
0
Kamal
Top achievements
Rank 1
answered on 17 May 2015, 04:28 PM
Please team can someone help me in this.
0
Kostadin
Telerik team
answered on 19 May 2015, 07:34 AM
Hi Kamal,

I would recommend you to use RadPersistenceFramework control to persist the grid state. Note that GridSettingsPersister class was used before creating this control. Nevertheless I examined the provided code and I was unable to find anything unusual but still I would appreciate if you can share your code behind.

Regards,
Kostadin
Telerik
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
0
Kamal
Top achievements
Rank 1
answered on 19 May 2015, 06:55 PM
Hello Kostadin,

Here is the code. Please let me know if the code for Main.master is required as well.

-----------------------------------MCSSites.aspx [STARTS]-----------------------------------

<%@ Page Language="C#" MasterPageFile="~/Main.master" AutoEventWireup="true" Inherits="UserPermissionManager.MCSSites"
    CodeBehind="MCSSites.aspx.cs" %>

<%@ MasterType VirtualPath="~/Main.master" %>

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="CTP" runat="Server">
    <script language="javascript" id="clientEventHandlersJS" type="text/javascript">
        function EnterKey(ctrl_client_Id) {
            if (event.keyCode == 13) {
                var ctrl = null;
                ctrl = document.getElementById(ctrl_client_Id);
                ctrl.focus();
                ctrl.click();
            }
        }
        //windowresize();
    </script>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="conditional">
        <ContentTemplate>
            <table align="center" cellspacing="10px" border="0">
                <tr>
                    <td align="left">
                        <input runat="server" type="hidden" id="hdUserName" />
                        <div id="divlistInUsers">
                            <telerik:RadGrid ID="RGSiteConfig" runat="server" AllowPaging="True" AllowSorting="True"
                                AutoGenerateColumns="False"
                                OnNeedDataSource="RGSiteConfig_NeedDataSource" OnInsertCommand="RGSiteConfig_InsertCommand"
                                OnItemDataBound="RGSiteConfig_ItemDataBound" OnItemCommand="RGSiteConfig_ItemCommand"
                                OnPreRender="RGSiteConfig_PreRender"
                                AllowFilteringByColumn="true" EnableLinqExpressions="false"
                                Skin="Silk"
                                PageSize="10" Width=""
                                HeaderStyle-Font-Bold="true"
                                AlternatingItemStyle-BackColor="#f0f0f0"
                                ClientSettings-Resizing-ShowRowIndicatorColumn="false">

                                <GroupingSettings CaseSensitive="false" />

                                <PagerStyle Mode="NextPrevAndNumeric" />

                                <MasterTableView CommandItemDisplay="Top" DataKeyNames="SiteID"
                                    InsertItemPageIndexAction="ShowItemOnFirstPage" CommandItemSettings-ShowRefreshButton="false">
                                    <Columns>
                                        <%--<telerik:GridTemplateColumn HeaderStyle-Width="10px" AllowFiltering="false" AllowSorting="false"
                                            Resizable="true" Reorderable="false">
                                            <ItemTemplate>
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridEditCommandColumn UniqueName="EditCommandColumn" HeaderStyle-Width="40px" Resizable="false" Reorderable="false" />--%>

                                        <telerik:GridTemplateColumn HeaderStyle-Width="40px" AllowFiltering="false" AllowSorting="false"
                                            Resizable="true" Reorderable="false">
                                            <ItemTemplate>
                                                <asp:LinkButton ID="lnkEdit" runat="server" Text="Edit"
                                                    CommandArgument='<%# Eval("SiteID").ToString() + "," + Eval("ContractorID").ToString()
                                                        + "," + Eval("CountryOfOrigin").ToString() + "," + Eval("SiteIsActive").ToString()
                                                        + "," + Eval("ContractorIsActive").ToString() + "," + Eval("CSIEnabled").ToString()
                                                        + "," + Eval("MCSInstalled").ToString() + "," + Eval("IsCM").ToString()%>'
                                                    CommandName="EditSiteConfig" CausesValidation="false" />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>

                                        <telerik:GridBoundColumn SortExpression="SiteName" DataField="SiteName" HeaderText="MCS Site Name"
                                            HeaderStyle-Width="150" />

                                        <telerik:GridBoundColumn DataField="IsCP" HeaderText="Customer Portal Company?" HeaderStyle-Width="140" />

                                        <telerik:GridBoundColumn DataField="TCAs" HeaderText="Mapped PSA Companies" AllowSorting="false" HeaderStyle-Width="150" />

                                        <telerik:GridTemplateColumn SortExpression="Total" HeaderText="Users(UPM/CP)" Visible="true"
                                            AllowFiltering="false" HeaderStyle-Width="130">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignOperatorsToSite" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfOperators") + "/" + DataBinder.Eval(Container.DataItem, "NoOfCPUsers")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>

                                        <telerik:GridTemplateColumn SortExpression="NoOfPermissions" HeaderText="CATS Permissions" DataField="NoOfPermissions"
                                            AllowFiltering="false" HeaderStyle-Width="100">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignPermissionsToSite" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfPermissions")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>

                                        <telerik:GridTemplateColumn HeaderText="CM Contacts" AllowFiltering="false" AllowSorting="false" HeaderStyle-Width="150">
                                            <ItemTemplate>
                                                <p id="pCMContacts" runat="server" />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn HeaderText="Ciena Program Managers" AllowFiltering="false" AllowSorting="false" HeaderStyle-Width="150">
                                            <ItemTemplate>
                                                <p id="pCienaContacts" runat="server" />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn HeaderText="CM Security Forms" AllowFiltering="false" AllowSorting="false"
                                            HeaderStyle-Width="105">
                                            <ItemTemplate>
                                                <asp:DataGrid ID="gvattachments" runat="server" AutoGenerateColumns="false" ShowHeader="false"
                                                    GridLines="None" BorderWidth="0">
                                                    <HeaderStyle Font-Bold="True" />
                                                    <Columns>
                                                        <asp:HyperLinkColumn DataTextField="AttachmentName" HeaderText="Files"
                                                            DataNavigateUrlField="AttachmentID" DataNavigateUrlFormatString="DownloadFile.aspx?Attachmentid={0}" />
                                                    </Columns>
                                                </asp:DataGrid>
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridTemplateColumn HeaderText="CM IP Address" AllowFiltering="false" AllowSorting="false" HeaderStyle-Width="120">
                                            <ItemTemplate>
                                                <asp:DataGrid ID="gvip" runat="server" AutoGenerateColumns="false" ShowHeader="false"
                                                    GridLines="None" BorderWidth="0">
                                                    <HeaderStyle Font-Bold="True" />
                                                    <Columns>
                                                        <asp:HyperLinkColumn DataNavigateUrlField="IPAddress" DataTextField="IPAddress"
                                                            DataNavigateUrlFormatString="http://whatismyipaddress.com/ip/{0}"
                                                            HeaderText="IP Address" Target="_blank" />
                                                    </Columns>
                                                </asp:DataGrid>
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                        <telerik:GridBoundColumn SortExpression="CountryOfOrigin" DataField="CountryOfOrigin" HeaderText="Country"
                                            HeaderStyle-Width="150" />
                                        <telerik:GridBoundColumn DataField="SiteIsActive" HeaderText="Active [Uses MCS UDC]" HeaderStyle-Width="110" />
                                        <telerik:GridBoundColumn DataField="ContractorIsActive" HeaderText="Uses LS Web" HeaderStyle-Width="70" />
                                        <telerik:GridBoundColumn DataField="CSIEnabled" HeaderText="Uses CSI App" HeaderStyle-Width="80" />
                                        <telerik:GridBoundColumn DataField="MCSInstalled" HeaderText="Uses MCS Client" HeaderStyle-Width="85" />

                                        <telerik:GridTemplateColumn SortExpression="NoOfGroups" HeaderText="Groups" Visible="false">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAssignGroupsToSite" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "NoOfGroups")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>

                                        <telerik:GridBoundColumn SortExpression="ModifiedBy" DataField="ModifiedBy" HeaderText="Updated By" HeaderStyle-Width="150" />
                                        <telerik:GridBoundColumn SortExpression="ModifiedTime" DataField="ModifiedTime" HeaderText="Updated Date"
                                            DataFormatString="{0:d-MMM-yyyy hh:mm tt}" AllowFiltering="false" />

                                        <telerik:GridTemplateColumn HeaderStyle-Width="145px" AllowFiltering="false" AllowSorting="false"
                                            Resizable="false" Reorderable="true" HeaderText="Export CM Details">
                                            <ItemTemplate>
                                                <asp:HyperLink ID="lnkExportInGrid" runat="server" Text="Export CM Details"
                                                    NavigateUrl='<%# Eval("SiteID", "~/DownloadFile.aspx?SiteID={0}")%>' Target="_blank" />
                                                <input runat="server" type="hidden" id="hdTotal" value='<%# DataBinder.Eval(Container.DataItem, "Total")%>' />
                                                <input runat="server" type="hidden" id="hdNoOfIPs" value='<%# DataBinder.Eval(Container.DataItem, "NoOfIPs")%>' />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>

                                        <telerik:GridBoundColumn SortExpression="SiteID" HeaderText="Site ID"
                                            DataField="SiteID" AllowFiltering="false" />

                                    </Columns>
                                    <EditFormSettings EditFormType="Template" CaptionFormatString="Add/Edit Site"
                                        FormCaptionStyle-Font-Bold="true">
                                        <PopUpSettings Width="555px" Modal="true" />
                                        <FormTemplate>

                                            <table cellpadding="2" cellspacing="5" border="0" width="100%" rules="none"
                                                style="border-collapse: collapse;">
                                                <tr>
                                                    <td>Site ID</td>
                                                    <td>
                                                        <asp:Label ID="lblSiteID" runat="server" Text='<%# Bind("SiteID")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Contractor ID</td>
                                                    <td>
                                                        <asp:Label ID="lblContractorID" runat="server" Text='<%# Bind("ContractorID")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>MCS Site Name</td>
                                                    <td>
                                                        <asp:TextBox ID="txtSiteName" runat="server" Text='<%# Bind("SiteName")%>'
                                                            MaxLength="50" />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Country</td>
                                                    <td>
                                                        <asp:DropDownList ID="lbCountryCode" runat="server" />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Active [Uses MCS UDC]</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkSiteActive" runat="server" Enabled="false"
                                                            Checked='<%# (DataBinder.Eval(Container.DataItem, "SiteIsActive") == DBNull.Value ? true : Eval("SiteIsActive"))%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Uses LS Web</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkContractorActive" runat="server" Enabled="false"
                                                            Checked='<%# (DataBinder.Eval(Container.DataItem, "ContractorIsActive") == DBNull.Value ? true : Eval("ContractorIsActive"))%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Uses CSI App</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkCSIEnabled" runat="server"
                                                            Checked='<%# (DataBinder.Eval(Container.DataItem, "CSIEnabled").ToString() == "True" ? true : false)%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>Uses MCS Client</td>
                                                    <td>
                                                        <asp:CheckBox ID="chkMCSInstalled" runat="server"
                                                            Checked='<%# (DataBinder.Eval(Container.DataItem, "MCSInstalled").ToString() == "True" ? true : false)%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <input runat="server" type="hidden" id="hdSiteName" value='<%# Bind("SiteName")%>' />
                                                        <input runat="server" type="hidden" id="hdCountry" value='<%# Bind("CountryOfOrigin")%>' />
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td colspan="2" style="height: 20px;">
                                                        <asp:Label ID="lblError1" ForeColor="Red" runat="server"></asp:Label>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td></td>
                                                    <td>
                                                        <asp:Button ID="btnUpdate" Text="Insert" runat="server" CommandName="PerformInsert"
                                                            CausesValidation="false" CssClass="button"></asp:Button>
                                                        <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="false"
                                                            CommandName="Cancel" CssClass="button"></asp:Button>
                                                    </td>
                                                </tr>
                                            </table>
                                        </FormTemplate>
                                    </EditFormSettings>
                                </MasterTableView>
                                <ClientSettings AllowColumnsReorder="true" ColumnsReorderMethod="Reorder" ReorderColumnsOnClient="true">
                                    <ClientEvents OnRowDblClick="" OnPopUpShowing="onPopUpShowing" />
                                    <Resizing AllowRowResize="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True"
                                        AllowColumnResize="True" />
                                </ClientSettings>
                            </telerik:RadGrid>
                        </div>
                    </td>
                </tr>
            </table>
            <table>
                <tr>
                    <td>
                        <!-- Popup for Assigning Groups to User Functionality -->
                        <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="conditional" style="position: fixed; left: 0; top: 0; width: 800px;">
                            <Triggers>
                                <asp:PostBackTrigger ControlID="btnupload" />
                            </Triggers>
                            <ContentTemplate>
                                <input runat="server" type="hidden" id="hdContractorIDForModalPopUp" />
                                <input runat="server" type="hidden" id="hdSiteIDForModalPopUp" />
                                <input runat="server" type="hidden" id="btnpopug" />

                                <div id="modelpanelug1" runat="server" class="modalPopup" style="display: none;">
                                    <table cellpadding="0" cellspacing="0" border="0">
                                        <tr id="panelheadug" class="panelhead">
                                            <td align="left" width="100%">&nbsp;
                                            </td>
                                            <td align="right">
                                                <input type="button" id="btncloseug" value="X" class="button crossbutton" />
                                            </td>
                                        </tr>
                                        <tr align="center">
                                            <td colspan="2">Edit Site Config for -
                                                <span style="color: Green; font-weight: bold;" id="spanusergroupgs"
                                                    runat="server" />
                                            </td>
                                        </tr>
                                        <tr>
                                            <td colspan="3" align="center" valign="middle">
                                                <div style="overflow: auto; width: 1215px; height: 605px;">
                                                    <table cellpadding="0" cellspacing="5" border="0">
                                                        <tr>
                                                            <td>
                                                                <br />
                                                            </td>
                                                        </tr>
                                                        <tr>
                                                            <td>
                                                                <div id="Div1" class="divs" style="height: 565px;">
                                                                    <telerik:RadTabStrip runat="server" ID="RadTabStrip1" MultiPageID="RadMultiPage1" SelectedIndex="0" Skin="Silk">
                                                                        <Tabs>
                                                                            <telerik:RadTab Text="PSA Companies" Width="150px" Height="100%" Selected="true" />
                                                                            <telerik:RadTab Text="User Groups" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="CATS Permissions" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="CM Contacts" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="Ciena PMs" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="CM Security Forms" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="CM IP Addresses" Width="150px" Height="100%" />
                                                                            <telerik:RadTab Text="Edit Site" Width="150px" Height="100%" />
                                                                        </Tabs>
                                                                    </telerik:RadTabStrip>
                                                                    <telerik:RadMultiPage runat="server" ID="RadMultiPage1" SelectedIndex="0" CssClass="outerMultiPage">
                                                                        <telerik:RadPageView runat="server" ID="RadPageView2">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="2">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td style="font-weight: bold; font-size: small;" class="auto-style2" colspan="2">PSA Companies:
                                                                                        <asp:TextBox ID="txtSearchPSACompany" MaxLength="200" runat="server" Width="150px" Style="margin-left: 0px" />
                                                                                        <asp:Button CssClass="button" runat="server" ID="btnSearcPSACompany" Text="Search" CausesValidation="False"
                                                                                            OnClick="btnSearcPSACompany_Click" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>Included PSA companies</td>
                                                                                    <td>Available PSA companies</td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbIncludedTCACompanies" runat="server" CssClass="listbox" Width="500px"
                                                                                            SelectionMode="Multiple" Rows="25" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbAvailableTCACompanies" runat="server" CssClass="listbox" Width="500px"
                                                                                            SelectionMode="Multiple" Rows="25" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:Button ID="btnRemoveTCAComp" runat="server" CssClass="button"
                                                                                            OnClick="btnRemoveTCAComp_Click" Text="Remove" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnAddTCAComp" runat="server" CssClass="button"
                                                                                            OnClick="btnAddTCAComp_Click" Text="Add" />
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView4">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="2">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td style="font-weight: bold; font-size: small;" class="auto-style2" colspan="2">Groups:
                                                                                        <asp:TextBox ID="txtSearchGroup" MaxLength="200" runat="server" Width="150px" Style="margin-left: 0px" />
                                                                                        <asp:Button CssClass="button" runat="server" ID="btnSearchGroup" Text="Search" CausesValidation="False"
                                                                                            OnClick="btnSearchGroup_Click" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>Included groups</td>
                                                                                    <td>Available groups</td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbIncludedGroups" runat="server" CssClass="listbox" Width="500px" Rows="25"
                                                                                            SelectionMode="Multiple" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbAvailableGroups" runat="server" CssClass="listbox" Width="500px" Rows="25"
                                                                                            SelectionMode="Multiple" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:Button ID="btnRemoveGroup" runat="server" CssClass="button" OnClick="btnRemoveGroup_Click" Text="Remove" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnAddGroup" runat="server" CssClass="button" OnClick="btnAddGroup_Click" Text="Add" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="2" style="font-size: small; color: red; font-weight: bold;"></td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView3">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="2">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>Included permissions</td>
                                                                                    <td>Available permissions</td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbIncludedAppPerm" runat="server" CssClass="listbox" Width="500px" Rows="25"
                                                                                            SelectionMode="Multiple" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:ListBox ID="lbAvailableAppPerm" runat="server" CssClass="listbox" Width="500px" Rows="25"
                                                                                            SelectionMode="Multiple" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr align="center">
                                                                                    <td>
                                                                                        <asp:Button ID="btnRemoveAppPerm" runat="server" CssClass="button" OnClick="btnRemoveAppPerm_Click" Text="Remove" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnAddAppPerm" runat="server" CssClass="button" OnClick="btnAddAppPerm_Click" Text="Add" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="2" style="font-size: small; color: red; font-weight: bold;">Please do not use Site-Permissions model unless the developer explicitly asks for it.
                                                                                        This feature is deprecated.<br />
                                                                                        Please use UserGroup-Site model instead.
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView5">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="3">
                                                                                        <br />
                                                                                        <input runat="server" type="hidden" id="hdContactID2" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Name</td>
                                                                                    <td>Email</td>
                                                                                    <td>Comments</td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcmname" runat="server" MaxLength="100" Width="170px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcmemail" runat="server" MaxLength="100" Width="170px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcmcomments" runat="server" MaxLength="500" Width="170px" />
                                                                                    </td>
                                                                                    <td align="right">
                                                                                        <asp:Button ID="btnSaveCM" runat="server" CssClass="button" OnClick="btnSaveCM_Click" Text="Save" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td align="center" colspan="3" valign="middle">
                                                                                        <span runat="server" id="msgspancontact" />
                                                                                        <br />
                                                                                        <asp:DataGrid ID="gvcontact" runat="server" AllowPaging="false" AutoGenerateColumns="false" OnItemCommand="gvcontact_ItemCommand" ShowHeader="true">
                                                                                            <HeaderStyle Font-Bold="True" />
                                                                                            <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
                                                                                            <Columns>
                                                                                                <asp:TemplateColumn HeaderText="Name">
                                                                                                    <ItemStyle Width="25%" />
                                                                                                    <ItemTemplate>
                                                                                                        <asp:Label ID="lblCMContactName" runat="server" Text='<%#Eval("CMContactName")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Email">
                                                                                                    <ItemStyle Width="30%" />
                                                                                                    <ItemTemplate>
                                                                                                        <asp:Label ID="lblCMEmail" runat="server" Text='<%#Eval("CMEmail")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Comments">
                                                                                                    <ItemStyle Width="35%" />
                                                                                                    <ItemTemplate>
                                                                                                        <asp:Label ID="lblCMComments" runat="server" Text='<%#Eval("Comments")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Edit" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkedit" runat="server" CausesValidation="false" CommandArgument='<%#Eval("ContactID")%>' CommandName="edit" Text="Edit"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Delete" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkdelcontacts" runat="server" CausesValidation="false" CommandArgument='<%#Eval("ContactID")%>' CommandName="delete" OnClientClick="javascript:return confirmdelete('CM Contact');" Text="Delete"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                            </Columns>
                                                                                        </asp:DataGrid>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView6">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="3">
                                                                                        <br />
                                                                                        <input runat="server" type="hidden" id="hdCienaContactID2" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Name</td>
                                                                                    <td>Email</td>
                                                                                    <td>Comments</td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcienaname" runat="server" MaxLength="50" Width="170px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcienaemail" runat="server" MaxLength="50" Width="170px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtcienacomments" runat="server" MaxLength="500" Width="170px" />
                                                                                    </td>
                                                                                    <td align="right">
                                                                                        <asp:Button ID="btnSavePM" runat="server" CssClass="button" OnClick="btnSavePM_Click" Text="Save" ValidationGroup="cienacontact" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td align="center" valign="middle" colspan="3">
                                                                                        <span runat="server" id="msgcienacontact" />
                                                                                        <br />
                                                                                        <asp:DataGrid ID="gvcienaPM" runat="server" AllowPaging="false" AutoGenerateColumns="false" ItemStyle-HorizontalAlign="Left" ItemStyle-Wrap="true" OnItemCommand="gvcienaPM_ItemCommand" ShowHeader="true">
                                                                                            <HeaderStyle Font-Bold="True" />
                                                                                            <Columns>
                                                                                                <asp:TemplateColumn HeaderText="Name">
                                                                                                    <ItemStyle Width="25%" />
                                                                                                    <ItemTemplate>
                                                                                                        &nbsp;
                                                                                                        <asp:Label ID="lblCienaContactName" runat="server" Text='<%#Eval("CienaContactName")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Email">
                                                                                                    <ItemStyle Width="30%" />
                                                                                                    <ItemTemplate>
                                                                                                        &nbsp;<asp:Label ID="lblcienaemail" runat="server" Text='<%#Eval("CienaEmail")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Comments">
                                                                                                    <ItemStyle Width="35%" />
                                                                                                    <ItemTemplate>
                                                                                                        &nbsp;
                                                                                                        <asp:Label ID="lblCMComments" runat="server" Text='<%#Eval("Comments")%>'></asp:Label>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Edit" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkedit" runat="server" CausesValidation="false" CommandArgument='<%#Eval("CienaContactID")%>' CommandName="edit" Text="Edit"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Delete" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkdelete" runat="server" CausesValidation="false" CommandArgument='<%#Eval("CienaContactID")%>' CommandName="delete" OnClientClick="javascript:return confirmdelete('Ciena PM');" Text="Delete"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                            </Columns>
                                                                                        </asp:DataGrid>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView7">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="3">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>File Description</td>
                                                                                    <td colspan="2">Choose File</td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtfile" runat="server" MaxLength="100" Width="170px" />
                                                                                    </td>
                                                                                    <td align="left" valign="middle">
                                                                                        <asp:FileUpload ID="formupload" runat="server" Height="18px" Width="250px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnupload" runat="server" CausesValidation="False" CssClass="button" OnClick="btnupload_Click" Text="Upload" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="3" valign="middle"><span runat="server" id="msgspanform" />
                                                                                        <asp:DataGrid ID="dlattachments" runat="server" AllowPaging="false" AutoGenerateColumns="false" HorizontalAlign="Center" OnItemCommand="dlattachments_ItemCommand" ShowHeader="true">
                                                                                            <HeaderStyle Font-Bold="True" />
                                                                                            <Columns>
                                                                                                <asp:BoundColumn HeaderText="File Description" DataField="AttachmentName" />
                                                                                                <asp:TemplateColumn HeaderText="Files">
                                                                                                    <ItemTemplate>
                                                                                                        <a href='DownloadFile.aspx?Attachmentid=<%#Eval("AttachmentID")%>' target="_blank">
                                                                                                            <asp:Label ID="filepath" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "AttachmentName")%>' Visible="true"></asp:Label>
                                                                                                        </a>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Delete" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkdelete" runat="server" CausesValidation="false" CommandArgument='<%#Eval("AttachmentID")%>' CommandName="delete" OnClientClick="javascript:return confirmdelete('file');" Text="Delete"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                            </Columns>
                                                                                        </asp:DataGrid>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView8">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="3">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtip1" runat="server" MaxLength="50" Width="170px" />
                                                                                    </td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnSaveIP" runat="server" CssClass="button" OnClick="btnSaveIP_Click" Text="Save" ValidationGroup="IP" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="3">
                                                                                        <p>
                                                                                            Use * as wild cards. Below is a valid sample:<br />
                                                                                            192.255.56.*<br />
                                                                                        </p>
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="3"><span runat="server" id="msgspanip" />
                                                                                        <asp:DataGrid ID="gvip" runat="server" AllowPaging="false" AutoGenerateColumns="false" OnItemCommand="gvip_ItemCommand" ShowHeader="true">
                                                                                            <HeaderStyle Font-Bold="True" />
                                                                                            <Columns>
                                                                                                <asp:TemplateColumn HeaderText="IP Address">
                                                                                                    <ItemTemplate>
                                                                                                        <a href='http://whatismyipaddress.com/ip/<%#Eval("IPAddress")%>' target="_blank">
                                                                                                            <asp:Label ID="lblipaddress" runat="server" Text='<%#Eval("IPAddress")%>'></asp:Label>
                                                                                                        </a>
                                                                                                    </ItemTemplate>
                                                                                                </asp:TemplateColumn>
                                                                                                <asp:TemplateColumn HeaderText="Delete" ItemStyle-Width="30px">
                                                                                                    <ItemTemplate>
                                                                                                        <asp:LinkButton ID="lnkdelete" runat="server" CausesValidation="false" CommandArgument='<%#Eval("IPID")%>'
                                                                                                            CommandName="delete" OnClientClick="javascript:return confirmdelete('IP');" Text="Delete"></asp:LinkButton>
                                                                                                    </ItemTemplate>
                                                                                                    <ItemStyle Width="30px" />
                                                                                                </asp:TemplateColumn>
                                                                                            </Columns>
                                                                                        </asp:DataGrid>
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                        <telerik:RadPageView runat="server" ID="RadPageView1">
                                                                            <table>
                                                                                <tr>
                                                                                    <td colspan="2">
                                                                                        <br />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Site ID</td>
                                                                                    <td>
                                                                                        <asp:Label ID="lblSiteID" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Contractor ID</td>
                                                                                    <td>
                                                                                        <asp:Label ID="lblContractorID" runat="server" />
                                                                                    </td>
                                                                                </tr>

                                                                                <tr>
                                                                                    <td>MCS Site Name</td>
                                                                                    <td>
                                                                                        <asp:TextBox ID="txtSiteName" runat="server" MaxLength="50" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Country</td>
                                                                                    <td>
                                                                                        <asp:DropDownList ID="lbCountryCode" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Active [Uses MCS UDC]</td>
                                                                                    <td>
                                                                                        <asp:CheckBox ID="chkSiteActive" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Uses LS Web</td>
                                                                                    <td>
                                                                                        <asp:CheckBox ID="chkContractorActive" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Uses CSI App</td>
                                                                                    <td>
                                                                                        <asp:CheckBox ID="chkCSIEnabled" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td>Uses MCS Client</td>
                                                                                    <td>
                                                                                        <asp:CheckBox ID="chkMCSInstalled" runat="server" />
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td colspan="2" style="height: 20px;">
                                                                                        <asp:Label ID="lblError1" ForeColor="Red" runat="server"></asp:Label>
                                                                                    </td>
                                                                                </tr>
                                                                                <tr>
                                                                                    <td></td>
                                                                                    <td>
                                                                                        <asp:Button ID="btnUpdate" Text="Update" runat="server" CausesValidation="false"
                                                                                            CssClass="button" OnClick="btnUpdate_Click" />
                                                                                    </td>
                                                                                </tr>
                                                                            </table>
                                                                        </telerik:RadPageView>
                                                                    </telerik:RadMultiPage>
                                                                </div>
                                                            </td>
                                                        </tr>
                                                    </table>
                                                </div>
                                            </td>
                                        </tr>
                                    </table>
                                </div>

                                <ajaxToolkit:ModalPopupExtender BehaviorID="ModalPopupExtenderug" ID="ModalPopupExtenderug"
                                    runat="server" TargetControlID="btnpopug" PopupControlID="modelpanelug1" BackgroundCssClass="modalBackground"
                                    DropShadow="true" PopupDragHandleControlID="panelheadug" CancelControlID="btncloseug" />

                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

​-----------------------------------MCSSites.aspx [ENDS]-----------------------------------

​

-----------------------------------MCSSites.aspx.cs [STARTS]-----------------------------------

using System;
using System.Collections;
using System.Data;
using System.Drawing;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using UPMLibrary;

namespace UserPermissionManager
{
    public partial class MCSSites : Page
    {
        CMSites objCMSites = new CMSites();
        Users objUsers = new Users();
        DataSet ds = new DataSet();
        GridSettingsPersister gsPersister;

        protected void Page_Load(object sender, EventArgs e)
        {
            //higlight Menu
            Page.Form.Attributes.Add("enctype", "multipart/form-data");
            //higlight Menu
            ((HtmlGenericControl)this.Master.FindControl("liCMCont")).Attributes.Add("class", "SelectedMainMenu");

            //Enter Key focus
            this.PreRenderComplete += new EventHandler(Page_PreRenderComplete);
            //ScriptManager.RegisterStartupScript(this,
            //                        this.GetType(),
            //                        "typeAUniqueScriptNameHere1",
            //                        "$('#ctl00_RadSearchBox1_Input').attr('maxlength', 4);", true);
            if (!IsPostBack)
                LoadCountries();

            if (Session["PERMISSIONLOGONUSER"] != null)
                objCMSites.CurrentUser = Session["PERMISSIONLOGONUSER"].ToString();
            else
                Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "document.getElementById('CTP_hdUserName').value = document.getElementById('lblSupplier').innerText;", true);
            //Bind All available usergroups
            if (Session["PERMISSIONLOGONUSER"] != null)
                objUsers.CurrentUser = Session["PERMISSIONLOGONUSER"].ToString();
            else
                Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "document.getElementById('CTP_hdUserName').value = document.getElementById('lblSupplier').innerText;", true);

            gsPersister = new GridSettingsPersister(RGSiteConfig);
        }

        protected void Page_PreRenderComplete(object sender, EventArgs e)
        {
            ScriptsRegister();
        }

        private void ScriptsRegister()
        {
            string strClearMsgLabels = "$('#" + msgcienacontact.ClientID + "').text('');"
                    + "$('#" + msgspancontact.ClientID + "').text('');"
                    + "$('#" + msgspanip.ClientID + "').text('');"
                    + "$('#" + msgspanform.ClientID + "').text('');";

            txtcmname.Attributes.Add("onchange", strClearMsgLabels);
            txtcmemail.Attributes.Add("onchange", strClearMsgLabels);
            txtcmcomments.Attributes.Add("onchange", strClearMsgLabels);
            txtcienaname.Attributes.Add("onchange", strClearMsgLabels);
            txtcienaemail.Attributes.Add("onchange", strClearMsgLabels);
            txtcienacomments.Attributes.Add("onchange", strClearMsgLabels);
            txtip1.Attributes.Add("onchange", strClearMsgLabels);
            txtfile.Attributes.Add("onchange", strClearMsgLabels);

            btnRemoveTCAComp.Attributes.Add("onclick",
                "if($('#" + lbIncludedTCACompanies.ClientID + "').val() == null) { $('#"
                + lbIncludedTCACompanies.ClientID + "').effect('shake'); errorfunction('Select PSA Companies.'); $('#" + lbIncludedTCACompanies.ClientID + "').focus(); return false; }"

                + "infofunction('PSA companies removed.');"
                );

            btnAddTCAComp.Attributes.Add("onclick",
                "if($('#" + lbAvailableTCACompanies.ClientID + "').val() == null) { $('#"
                + lbAvailableTCACompanies.ClientID + "').effect('shake'); errorfunction('Select PSA Companies.'); $('#" + lbAvailableTCACompanies.ClientID + "').focus(); return false; }"

                + "alertfunction('PSA companies added.');"
                );

            btnRemoveGroup.Attributes.Add("onclick",
                "if($('#" + lbIncludedGroups.ClientID + "').val() == null) { $('#"
                + lbIncludedGroups.ClientID + "').effect('shake'); errorfunction('Select Group(s).'); $('#" + lbIncludedGroups.ClientID + "').focus(); return false; }"

                + "infofunction('Group(s) removed.');"
                );

            btnAddGroup.Attributes.Add("onclick",
                "if($('#" + lbAvailableGroups.ClientID + "').val() == null) { $('#"
                + lbAvailableGroups.ClientID + "').effect('shake'); errorfunction('Select Group(s).'); $('#" + lbAvailableGroups.ClientID + "').focus(); return false; }"

                + "alertfunction('Group(s) added.');"
                );

            btnRemoveAppPerm.Attributes.Add("onclick",
                "if($('#" + lbIncludedAppPerm.ClientID + "').val() == null) { $('#"
                + lbIncludedAppPerm.ClientID + "').effect('shake'); errorfunction('Select Permission(s).'); $('#" + lbIncludedAppPerm.ClientID + "').focus(); return false; }"

                + "infofunction('Permission(s) removed.');"
                );

            btnAddAppPerm.Attributes.Add("onclick",
                "if($('#" + lbAvailableAppPerm.ClientID + "').val() == null) { $('#"
                + lbAvailableAppPerm.ClientID + "').effect('shake'); errorfunction('Select Permission(s).'); $('#" + lbAvailableAppPerm.ClientID + "').focus(); return false; }"

                + "alertfunction('Permission(s) added.');"
                );

            btnSaveCM.Attributes.Add("onclick",
                "if($('#" + txtcmname.ClientID + "').val() == '') { $('#"
                + txtcmname.ClientID + "').effect('shake'); errorfunction('Name is required.'); $('#" + txtcmname.ClientID + "').focus(); return false; }"
                +
                "if($('#" + txtcmemail.ClientID + "').val() == '') { $('#"
                + txtcmemail.ClientID + "').effect('shake'); errorfunction('Email is required.'); $('#" + txtcmemail.ClientID + "').focus(); return false; }"

                + "else { if(!validateEmail($('#" + txtcmemail.ClientID + "').val())) { "
                + "$('#" + txtcmemail.ClientID + "').effect('shake'); errorfunction('Invalid email.'); $('#" + txtcmemail.ClientID + "').focus(); return false; } }"

                + "//alertfunction('CM contact saved.');"
                );

            btnSavePM.Attributes.Add("onclick",
                "if($('#" + txtcienaname.ClientID + "').val() == '') { $('#"
                + txtcienaname.ClientID + "').effect('shake'); errorfunction('Name is required.'); $('#" + txtcienaname.ClientID + "').focus(); return false; }"
                +
                "if($('#" + txtcienaemail.ClientID + "').val() == '') { $('#"
                + txtcienaemail.ClientID + "').effect('shake'); errorfunction('Email is required.'); $('#" + txtcienaemail.ClientID + "').focus(); return false; }"

                + "else { if(!validateEmail($('#" + txtcienaemail.ClientID + "').val())) { "
                + "$('#" + txtcienaemail.ClientID + "').effect('shake'); errorfunction('Invalid email.'); $('#" + txtcienaemail.ClientID + "').focus(); return false; } }"

                + "//alertfunction('PM saved.');"
                );

            btnupload.Attributes.Add("onclick",
                "if($('#" + formupload.ClientID + "').val() == '') { $('#"
                + formupload.ClientID + "').effect('shake'); errorfunction('Select a file.'); $('#" + formupload.ClientID + "').focus(); return false; }"

                + "//alertfunction('File saved.');"
                );

            btnSaveIP.Attributes.Add("onclick",
                "if($('#" + txtip1.ClientID + "').val() == '') { $('#"
                + txtip1.ClientID + "').effect('shake'); errorfunction('IP Address is required.'); $('#" + txtip1.ClientID + "').focus(); return false; }"

                + "else { if(!validateIPAddress($('#" + txtip1.ClientID + "').val())) { "
                + "$('#" + txtip1.ClientID + "').effect('shake'); errorfunction('Invalid IP.'); $('#" + txtip1.ClientID + "').focus(); return false; } }"

                + "//return false; //alertfunction('IP saved.');"
                );

            btnUpdate.Attributes.Add("onclick",

                "if($('#" + txtSiteName.ClientID + "').val() == '') { $('#"
                + txtSiteName.ClientID + "').effect('shake'); errorfunction('Site Name is required.'); $('#" + txtSiteName.ClientID + "').focus(); return false; }"

                + "//alertfunction('Site saved.');"
                );
        }

        protected void Page_PreInit(object sender, EventArgs e)
        {
            // Create an event handler for the master page's contentCallEvent event
            Master.evtExportToExcel += new EventHandler(btnExportToExcel_Click);
            Master.evtSaveGridSettings += new EventHandler(btnSaveGridSettings_Click);
            Master.evtResetGridSettings += new EventHandler(btnResetGridSettings_Click);
            Master.evtClearFilters += new EventHandler(btnClearFilters_Click);
        }

        protected void btnExportToExcel_Click(object sender, EventArgs e)
        {
            Session["DataTableToExport"] = Session["Sites"];
        }

        protected void btnSaveGridSettings_Click(object sender, EventArgs e)
        {
            Session["SitePreferences"] = gsPersister.SaveSettings();
        }

        private void LoadGridSettings()
        {
            if (Session["SitePreferences"] != null)
                gsPersister.LoadSettings(Session["SitePreferences"].ToString());
        }

        protected void btnResetGridSettings_Click(object sender, EventArgs e)
        {
            Session["SitePreferences"] = null;
            Response.Redirect("MCSSites.aspx");
        }

        protected void btnClearFilters_Click(object sender, EventArgs e)
        {
            Master.clearRadFilters(ref RGSiteConfig);
        }

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            RGSiteConfig.MasterTableView.EditMode = (GridEditMode)Enum.Parse(typeof(GridEditMode), "PopUp");
            GridFilterMenu menu = RGSiteConfig.FilterMenu;
            int i = 0;
            while (i < menu.Items.Count)
            {
                if (menu.Items[i].Text == "NoFilter" ||
                    menu.Items[i].Text == "Contains" ||
                    menu.Items[i].Text == "DoesNotContain" ||
                    menu.Items[i].Text == "StartsWith" ||
                    menu.Items[i].Text == "EndsWith" ||
                    menu.Items[i].Text == "EqualTo" ||
                    menu.Items[i].Text == "NotEqualTo"
                    )
                    i++;
                else
                    menu.Items.RemoveAt(i);
            }
        }

        protected void btnSaveCM_Click(object sender, EventArgs e)
        {
            objCMSites.ContactID = Convert.ToInt32(hdContactID2.Value);
            objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
            objCMSites.CMame = txtcmname.Text.Trim();
            objCMSites.CMEmail = txtcmemail.Text.Trim();
            objCMSites.CMComments = txtcmcomments.Text.Trim();

            //Duplicate Email for Ciena Contact
            DataSet dsEmail = objCMSites.DuplicateCMEmail();
            if (dsEmail != null)
            {
                if ((dsEmail.Tables[0].Rows.Count > 0) && (dsEmail.Tables[0].Rows[0]["ContactID"].ToString() != hdContactID2.Value))
                    msgspancontact.InnerHtml = "<font color='red'>Email already exists.</font>";
                else
                {
                    DataSet dssavecontact;
                    if (objCMSites.ContactID > 0)
                        dssavecontact = objCMSites.UpdateSiteContact();
                    else
                        dssavecontact = objCMSites.InsertSiteContact();
                    if (dssavecontact != null)
                    {
                        if (dssavecontact.Tables[0].Rows.Count > 0)
                        {
                            this.btnSaveCM.Enabled = false;
                            msgspancontact.InnerHtml = "<font color='green'>Site Contact saved.</font>";
                            txtcmname.Text = "";
                            txtcmemail.Text = "";
                            txtcmcomments.Text = "";
                            bindContacts();

                            Session["Sites"] = null;
                            objCMSites.SiteID = 0;
                            RGSiteConfig.MasterTableView.Rebind();
                        }
                        else
                            msgspancontact.InnerHtml = "<font color='red'>Error in saving Site Contact.</font>";

                    }
                    else
                        msgspancontact.InnerHtml = "<font color='red'>Error in saving Site Contact.</font>";
                }
            }

            ModalPopupExtenderug.Show();
        }

        protected void btnSavePM_Click(object sender, EventArgs e)
        {
            objCMSites.CienaContactID = Convert.ToInt32(hdCienaContactID2.Value);
            objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
            objCMSites.CienaName = txtcienaname.Text.Trim();
            objCMSites.CienaEmail = txtcienaemail.Text.Trim();
            objCMSites.CienaComments = txtcienacomments.Text.Trim();
            DataSet dssavecontact;
            if (objCMSites.CienaContactID > 0)
                dssavecontact = objCMSites.UpdateCienaContact();
            else
                dssavecontact = objCMSites.InsertCienaContact();
            if (dssavecontact != null)
            {
                if (dssavecontact.Tables[0].Rows.Count > 0)
                {
                    this.btnSavePM.Enabled = false;
                    msgcienacontact.InnerHtml = "<font color='green'>Ciena PM saved.</font>";
                    txtcienaname.Text = "";
                    txtcienaemail.Text = "";
                    txtcienacomments.Text = "";
                    bindCienaContacts();

                    Session["Sites"] = null;
                    objCMSites.SiteID = 0;
                    RGSiteConfig.MasterTableView.Rebind();
                }
                else
                    msgcienacontact.InnerHtml = "<font color='red'>Error in saving Ciena PM.</font>";

            }
            else
                msgcienacontact.InnerHtml = "<font color='red'>Error in saving Ciena PM.</font>";
            ModalPopupExtenderug.Show();
        }

        protected void btnupload_Click(object sender, EventArgs e)
        {
            /* New Code */
            ClearMessagesInModalPopup();
            try
            {
                Stream fs = formupload.PostedFile.InputStream;
                string filename = formupload.FileName;
                string contenttype = formupload.PostedFile.ContentType;
                long filesize = fs.Length;
                string attachmentname = txtfile.Text.Trim();

                if (filename.Length > 0)
                {

                    if (filename.LastIndexOf('\\') != -1)
                        filename = filename.Substring(filename.LastIndexOf('\\') + 1);
                    //Restrict Filename length to 100
                    if (filename.Length > 100)
                    {
                        msgspanform.InnerHtml = "<font color='red'>File name should not exceeds 100 characters.</font>";
                        ModalPopupExtenderug.Show();
                        return;
                    }
                    if (String.IsNullOrWhiteSpace(attachmentname))
                        attachmentname = filename;

                    //Check Duplicate FileName
                    foreach (DataGridItem item in dlattachments.Items)
                    {
                        Label lblfilename = (Label)item.FindControl("filepath");
                        if (attachmentname.ToLower() == lblfilename.Text.ToLower().Trim())
                        {
                            msgspanform.InnerHtml = "<font color='red'>File name already exists.</font>";
                            ModalPopupExtenderug.Show();
                            return;
                        }
                    }

                    byte[] buffer = new byte[filesize];
                    fs.Read(buffer, 0, buffer.Length);
                    fs.Close();

                    MemoryStream ms = new MemoryStream();
                    GZipStream zip = new GZipStream(ms, CompressionMode.Compress);
                    zip.Write(buffer, 0, buffer.Length);
                    zip.Close();
                    ms.Close();

                    byte[] writebuffer = ms.ToArray();

                    objCMSites.FileName = filename;
                    objCMSites.FileContent = writebuffer;
                    objCMSites.FileSize = Convert.ToInt32(filesize);
                    objCMSites.ContentType = contenttype;
                    objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
                    objCMSites.AttachmentName = attachmentname;

                    DataSet dsattachment = objCMSites.InsertSiteAttachment();
                    if (dsattachment != null)
                    {
                        msgspanform.InnerHtml = "<font color='green'>File uploaded.</font>";
                        bindForms();

                        Session["Sites"] = null;
                        objCMSites.SiteID = 0;
                        RGSiteConfig.MasterTableView.Rebind();
                    }
                    else
                        msgspanform.InnerHtml = "<font color='red'>Error in Saving File in DB.</font>";
                }
                else
                    msgspanform.InnerHtml = "<font color='red'>Please choose a valid file.</font>";
                ModalPopupExtenderug.Show();
            }
            catch (Exception ex)
            {
                msgspanform.InnerHtml = "<font color='red'>Error in file upload.<br/>" + ex.ToString() + "</font>";
                ModalPopupExtenderug.Show();
            }
        }

        public static String SafeMapPath(String fname)
        {
            if (string.IsNullOrEmpty(fname) || Path.IsPathRooted(fname))
                return fname;
            string result = fname;
            //Try it as a virtual path. Try to map it based on the Request.MapPath to handle Medium trust level and "~/" paths automatically
            try
            {
                result = HttpContext.Current.Request.MapPath(fname);
            }
            catch
            {
                //Didn't like something about the virtual path.
                //May be a drive path. See if it will expand to a valid path
                try
                {
                    //Try a GetFullPath. If the path is not virtual or has other malformed problems
                    //Return it as is
                    result = Path.GetFullPath(fname);
                }
                catch (NotSupportedException) // Contains a colon, probably already a full path.
                {
                    return fname;
                }
            }
            return result;
        }

        protected void btnSaveIP_Click(object sender, EventArgs e)
        {
            try
            {
                //IPAddress ip;
                //bool isvaild = IPAddress.TryParse(txtip1.Text, out ip);
                //if (!isvaild)
                //{
                //    msgspanip.InnerHtml = "<font color='red'>Invalid IP address.</font>";
                //    ModalPopupExtenderug.Show();
                //    return;
                //}

                objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
                objCMSites.IPAddress = txtip1.Text;

                //Duplicate IP address
                DataSet dsip = objCMSites.DuplicateIP();
                if (dsip != null)
                {
                    if (dsip.Tables[0].Rows.Count > 0)
                        msgspanip.InnerHtml = "<font color='red'>IP address already exists.</font>";
                    else
                    {
                        DataSet dssavip = objCMSites.InsertSiteIP();
                        if (dssavip != null)
                        {
                            msgspanip.InnerHtml = "<font color='green'>IP addess saved.</font>";
                            txtip1.Text = "";
                            bindIP();

                            Session["Sites"] = null;
                            objCMSites.SiteID = 0;
                            RGSiteConfig.MasterTableView.Rebind();
                        }
                        else
                            msgspanip.InnerHtml = "<font color='red'>Error in Saving IP address.</font>";
                    }
                }
            }
            catch (Exception ex)
            {
                msgspanip.InnerHtml = "<font color='red'>" + ex.ToString() + " </font>";
            }
            ModalPopupExtenderug.Show();
        }

        protected void gvcontact_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            ClearMessagesInModalPopup();

            if (e.CommandName == "edit")
            {
                hdContactID2.Value = e.CommandArgument.ToString();
                objCMSites.ContactID = Convert.ToInt32(hdContactID2.Value);
                DataTable dtcmcontact = objCMSites.CMContactDetails().Tables[0];
                if (dtcmcontact.Rows.Count > 0)
                {
                    hdContactID2.Value = dtcmcontact.Rows[0]["ContactID"].ToString();
                    txtcmemail.Text = dtcmcontact.Rows[0]["CMEmail"].ToString();
                    txtcmname.Text = dtcmcontact.Rows[0]["CMContactName"].ToString();
                    txtcmcomments.Text = dtcmcontact.Rows[0]["Comments"].ToString();
                }
                else
                {
                    msgspancontact.InnerHtml = "<font color='red'>Error in retrieving CM Contact details.</font>";
                }
            }
            else if (e.CommandName == "delete")
            {
                objCMSites.ContactID = Convert.ToInt32(e.CommandArgument);
                bool delContact = objCMSites.DeleteSiteContact();
                if (delContact)
                {

                    msgspancontact.InnerHtml = "<font color='green'>Contact deleted.</font>";
                    bindContacts();

                }
                else
                    msgspancontact.InnerHtml = "<font color='red'>Error in deleting Contact.</font>";
            }
            ModalPopupExtenderug.Show();
        }

        protected void dlattachments_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            ClearMessagesInModalPopup();

            if (e.CommandName == "delete")
            {
                objCMSites.AttachmentID = Convert.ToInt32(e.CommandArgument);
                bool delfile = objCMSites.DeleteSiteAttachment();
                if (delfile)
                {
                    msgspanform.InnerHtml = "<font color='green'>Attachment deleted.</font>";
                    bindForms();

                }
                else
                    msgspanform.InnerHtml = "<font color='red'>Error in deleting attachment.</font>";
                ModalPopupExtenderug.Show();
            }
        }

        protected void gvip_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            ClearMessagesInModalPopup();

            if (e.CommandName == "delete")
            {
                objCMSites.IPID = Convert.ToInt32(e.CommandArgument);
                bool delIP = objCMSites.DeleteSiteIP();
                if (delIP)
                {
                    msgspanip.InnerHtml = "<font color='green'>IP address deleted.</font>";
                    bindIP();
                }
                else
                    msgspanip.InnerHtml = "<font color='red'>Error in deleting IP address.</font>";
                ModalPopupExtenderug.Show();
            }

        }

        protected void gvcienaPM_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            ClearMessagesInModalPopup();

            if (e.CommandName == "edit")
            {
                hdCienaContactID2.Value = e.CommandArgument.ToString();
                objCMSites.CienaContactID = Convert.ToInt32(hdCienaContactID2.Value);
                DataTable dtcienacontact = objCMSites.CienaContactDetails().Tables[0];
                if (dtcienacontact.Rows.Count > 0)
                {
                    hdCienaContactID2.Value = dtcienacontact.Rows[0]["CienaContactID"].ToString();
                    txtcienaemail.Text = dtcienacontact.Rows[0]["CienaEmail"].ToString();
                    txtcienaname.Text = dtcienacontact.Rows[0]["CienaContactName"].ToString();
                    txtcienacomments.Text = dtcienacontact.Rows[0]["Comments"].ToString();
                }
                else
                {
                    msgcienacontact.InnerHtml = "<font color='red'>Error in retrieving this PM details.</font>";
                }
            }
            else if (e.CommandName == "delete")
            {
                objCMSites.CienaContactID = Convert.ToInt32(e.CommandArgument);
                bool delContact = objCMSites.DeleteCienaContact();
                if (delContact)
                {
                    msgcienacontact.InnerHtml = "<font color='green'>PM deleted.</font>";
                    bindCienaContacts();

                }
                else
                    msgcienacontact.InnerHtml = "<font color='red'>Error in deleting PM.</font>";
            }
            ModalPopupExtenderug.Show();
        }

        public string middleStr(string fullStr, string start, string end)
        {
            string cmsite = fullStr;
            try
            {
                cmsite = cmsite.Remove(cmsite.IndexOf(end));
                if (!String.IsNullOrWhiteSpace(start))
                    cmsite = cmsite.Substring(cmsite.IndexOf(start) + 1);
            }
            catch
            { }
            return cmsite;
        }

        /***************************************** NEW LAYOUT *********************************/

        private void ClearMessagesInModalPopup()
        {
            msgcienacontact.InnerHtml = "";
            msgspancontact.InnerHtml = "";
            msgspanip.InnerHtml = "";
            msgspanform.InnerHtml = "";
        }

        protected void btnRemoveGroup_Click(object sender, EventArgs e)
        {
            AddRemoveGroups("REMOVE");
        }

        protected void btnAddGroup_Click(object sender, EventArgs e)
        {
            AddRemoveGroups("ADD");
        }

        public void AddRemoveGroups(string strAction)
        {
            ClearMessagesInModalPopup();
            ListBox lb = ((strAction == "ADD") ? lbAvailableGroups : lbIncludedGroups);

            string strGroupIDs = "";
            foreach (ListItem item in lb.Items)
            {
                if (item.Selected)
                    strGroupIDs += item.Value + ",";
            }
            if (!String.IsNullOrWhiteSpace(strGroupIDs))
            {
                objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
                objCMSites.GroupIDs = strGroupIDs;

                if (String.IsNullOrWhiteSpace(objUsers.CurrentUser))
                {
                    if (!String.IsNullOrWhiteSpace(((Main)this.Master).UserName))
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = ((Main)this.Master).UserName;
                    else
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = hdUserName.Value;
                }

                bool changed = objCMSites.AddRemoveGroupsToSite(strAction);

                Session["Sites"] = null;
                objCMSites.SiteID = 0;
                RGSiteConfig.MasterTableView.Rebind();

                if (strAction == "ADD")
                    Session["AddedListItems"] += strGroupIDs;
                else
                    Session["RemovedListItems"] += strGroupIDs;

                bind2Groups(true);
            }
            ModalPopupExtenderug.Show();
        }

        public void btnRemoveAppPerm_Click(Object sender, EventArgs e)
        {
            AddRemovePermissions("REMOVE");
        }

        public void btnAddAppPerm_Click(Object sender, EventArgs e)
        {
            AddRemovePermissions("ADD");
        }

        public void AddRemovePermissions(string strAction)
        {
            ClearMessagesInModalPopup();
            ListBox lb = ((strAction == "ADD") ? lbAvailableAppPerm : lbIncludedAppPerm);

            string strPermisssionIDs = "";
            foreach (ListItem item in lb.Items)
            {
                if (item.Selected)
                    strPermisssionIDs += item.Value + ",";
            }
            if (!String.IsNullOrWhiteSpace(strPermisssionIDs))
            {
                objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
                objCMSites.ContractorID = Convert.ToInt32(hdContractorIDForModalPopUp.Value);
                objCMSites.PermissionIDs = strPermisssionIDs;

                if (String.IsNullOrWhiteSpace(objUsers.CurrentUser))
                {
                    if (!String.IsNullOrWhiteSpace(((Main)this.Master).UserName))
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = ((Main)this.Master).UserName;
                    else
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = hdUserName.Value;
                }

                bool changed = objCMSites.AddRemovePermissionsToSite(strAction);

                Session["Sites"] = null;
                objCMSites.SiteID = 0;
                RGSiteConfig.MasterTableView.Rebind();

                if (strAction == "ADD")
                    Session["AddedListItems"] += strPermisssionIDs;
                else
                    Session["RemovedListItems"] += strPermisssionIDs;

                bind2Permissions(true);
            }
            ModalPopupExtenderug.Show();
        }

        public void btnRemoveTCAComp_Click(Object sender, EventArgs e)
        {
            AddRemoveTCACompanies("REMOVE");
        }

        public void btnAddTCAComp_Click(Object sender, EventArgs e)
        {
            AddRemoveTCACompanies("ADD");
        }

        public void AddRemoveTCACompanies(string strAction)
        {
            ClearMessagesInModalPopup();
            ListBox lb = ((strAction == "ADD") ? lbAvailableTCACompanies : lbIncludedTCACompanies);

            string strPartyIDs = "";
            foreach (ListItem item in lb.Items)
            {
                if (item.Selected)
                    strPartyIDs += item.Value + ",";
            }
            if (!String.IsNullOrWhiteSpace(strPartyIDs))
            {
                objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
                objCMSites.PartyIDs = strPartyIDs;

                if (String.IsNullOrWhiteSpace(objUsers.CurrentUser))
                {
                    if (!String.IsNullOrWhiteSpace(((Main)this.Master).UserName))
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = ((Main)this.Master).UserName;
                    else
                        Session["PERMISSIONLOGONUSER"] = objUsers.CurrentUser = objCMSites.CurrentUser = hdUserName.Value;
                }

                bool changed = objCMSites.AddRemoveTCACompaniesToSite(strAction);

                Session["Sites"] = null;
                objCMSites.SiteID = 0;
                RGSiteConfig.MasterTableView.Rebind();

                if (strAction == "ADD")
                    Session["AddedListItems"] += strPartyIDs;
                else
                    Session["RemovedListItems"] += strPartyIDs;

                bind2TCACompanies(true);

            }
            ModalPopupExtenderug.Show();
        }

        /*******************************************************************************************/

        public DataTable BindSites()
        {
            return objCMSites.GetSitesForUPM().Tables[0];
        }

        private DataTable SitesTable
        {
            get
            {
                object obj = Session["Sites"];
                DataTable myDataTable = new DataTable();
                if (obj != null)
                    myDataTable = (DataTable)obj;
                else
                    myDataTable = BindSites();

                Session["Sites"] = myDataTable;
                return myDataTable;
            }
        }

        protected void RGSiteConfig_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
        {
            RGSiteConfig.DataSource = SitesTable;
            SitesTable.PrimaryKey = new DataColumn[] { SitesTable.Columns["SiteID"] };
            if (!IsPostBack)
                LoadGridSettings();
        }

        protected void RGSiteConfig_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)// && (!(e.Item is GridEditFormItem) && !(e.Item.IsInEditMode)))
            {
                //Get the instance of the right type
                GridDataItem dataBoundItem = e.Item as GridDataItem;
                Label lblAssignTCACompanies = (Label)dataBoundItem.FindControl("lblAssignTCACompanies");
                LinkButton lnkEdit = (LinkButton)dataBoundItem.FindControl("lnkEdit");
                HtmlGenericControl pCMContacts = (HtmlGenericControl)dataBoundItem.FindControl("pCMContacts");
                HtmlGenericControl pCienaContacts = (HtmlGenericControl)dataBoundItem.FindControl("pCienaContacts");
                Label lblAssignGroupsToSite = (Label)dataBoundItem.FindControl("lblAssignGroupsToSite");
                DataGrid gvTCACompanies = (DataGrid)dataBoundItem.FindControl("gvTCACompanies");
                DataGrid gvattachments = (DataGrid)dataBoundItem.FindControl("gvattachments");
                DataGrid gvip = (DataGrid)dataBoundItem.FindControl("gvip");
                HyperLink lnkExportInGrid = (HyperLink)dataBoundItem.FindControl("lnkExportInGrid");
                HtmlInputHidden hdTotal = (HtmlInputHidden)dataBoundItem.FindControl("hdTotal");
                HtmlInputHidden hdNoOfIPs = (HtmlInputHidden)dataBoundItem.FindControl("hdNoOfIPs");

                objCMSites.SiteID = Convert.ToInt16(dataBoundItem["SiteID"].Text);

                ds = objCMSites.GetAllInformationForSite();

                string strItems = "";
                string strItem = "";

                if (hdTotal.Value == "0" && hdNoOfIPs.Value == "0")
                    lnkExportInGrid.Visible = false;

                dataBoundItem["TCAs"].Text = dataBoundItem["TCAs"].Text.Replace(", ", ",<br >");

                if (ds.Tables[1].Rows.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[1].Rows)
                    {
                        strItem = dr["CMContactName"].ToString() + " [<a target='_top' href='mailto:" + dr["CMEmail"].ToString() + "'>" + dr["CMEmail"].ToString() + "</a>]";
                        strItems += strItem + ",<br />";
                    }
                    strItems = strItems.Trim();
                    pCMContacts.InnerHtml = strItems.Remove(strItems.Length - 1);
                }
                else
                    pCMContacts.InnerHtml = "";

                strItems = "";
                strItem = "";
                if (ds.Tables[2].Rows.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[2].Rows)
                    {
                        strItem = dr["CienaContactName"].ToString() + " [<a target='_top' href='mailto:" + dr["CienaEmail"].ToString() + "'>" + dr["CienaEmail"].ToString() + "</a>]";
                        strItems += strItem + ",<br />";
                    }
                    strItems = strItems.Trim();
                    pCienaContacts.InnerHtml = strItems.Remove(strItems.Length - 1);
                }
                else
                    pCienaContacts.InnerHtml = "";

                if (ds.Tables[3].Rows.Count < 1)
                    gvattachments.Visible = false;
                else
                {
                    gvattachments.DataSource = ds.Tables[3];
                    gvattachments.DataBind();
                }

                if (ds.Tables[4].Rows.Count < 1)
                    gvip.Visible = false;
                else
                {
                    gvip.DataSource = ds.Tables[4];
                    gvip.DataBind();
                }

                if (dataBoundItem["IsCP"].Text.ToLower() == "true")
                {
                    dataBoundItem["IsCP"].Text = "YES";
                    dataBoundItem["IsCP"].ForeColor = Color.Green;
                    lnkExportInGrid.Visible = false;
                }
                else
                {
                    dataBoundItem["IsCP"].Text = "NO";
                    dataBoundItem["IsCP"].ForeColor = Color.Red;
                    //lnkExportInGrid.Visible = true;
                }
                if (dataBoundItem["SiteIsActive"].Text.ToLower() == "true")
                {
                    dataBoundItem["SiteIsActive"].Text = "YES";
                    dataBoundItem["SiteIsActive"].ForeColor = Color.Green;
                }
                else
                {
                    dataBoundItem["SiteIsActive"].Text = "NO";
                    dataBoundItem["SiteIsActive"].ForeColor = Color.Red;
                }
                if (dataBoundItem["CountryOfOrigin"].Text.ToLower() == "unknown")
                {
                    dataBoundItem["CountryOfOrigin"].Text = "Not Configured";
                    dataBoundItem["CountryOfOrigin"].ForeColor = Color.Red;
                }
                if (dataBoundItem["ContractorIsActive"].Text.ToLower() == "true")
                {
                    dataBoundItem["ContractorIsActive"].Text = "YES";
                    dataBoundItem["ContractorIsActive"].ForeColor = Color.Green;
                }
                else
                {
                    dataBoundItem["ContractorIsActive"].Text = "NO";
                    dataBoundItem["ContractorIsActive"].ForeColor = Color.Red;
                }
                if (dataBoundItem["CSIEnabled"].Text.ToLower() == "true")
                {
                    dataBoundItem["CSIEnabled"].Text = "YES";
                    dataBoundItem["CSIEnabled"].ForeColor = Color.Green;
                }
                else
                {
                    dataBoundItem["CSIEnabled"].Text = "NO";
                    dataBoundItem["CSIEnabled"].ForeColor = Color.Red;
                }
                if (dataBoundItem["MCSInstalled"].Text.ToLower() == "true")
                {
                    dataBoundItem["MCSInstalled"].Text = "YES";
                    dataBoundItem["MCSInstalled"].ForeColor = Color.Green;
                }
                else
                {
                    dataBoundItem["MCSInstalled"].Text = "NO";
                    dataBoundItem["MCSInstalled"].ForeColor = Color.Red;
                }
            }

            if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
            {
                GridEditFormItem editform = (GridEditFormItem)e.Item;
                DropDownList lbCountryCode = (DropDownList)editform.FindControl("lbCountryCode");

                lbCountryCode.DataSource = Master.GetCountries;
                lbCountryCode.DataTextField = "CountryName";
                lbCountryCode.DataValueField = "Code";
                lbCountryCode.DataBind();

                HtmlInputHidden hd = (HtmlInputHidden)editform.FindControl("hdCountry");
                if (!String.IsNullOrWhiteSpace(hd.Value) && lbCountryCode.Items.FindByText(hd.Value) != null)
                    lbCountryCode.Items.FindByText(hd.Value).Selected = true;

                TextBox txtSiteName = (TextBox)editform.FindControl("txtSiteName");
                Button btnUpdate = (Button)editform.FindControl("btnUpdate");

                btnUpdate.Attributes.Add("onclick",

                    "if($('#" + txtSiteName.ClientID + "').val() == '') { $('#"
                    + txtSiteName.ClientID + "').effect('shake'); errorfunction('Site Name is required.'); $('#" + txtSiteName.ClientID + "').focus(); return false; }"

                    + "alertfunction('Site saved.');"
                    );
            }
        }

        protected void RGSiteConfig_InsertCommand(object source, GridCommandEventArgs e)
        {
            GridEditableItem editedItem = e.Item as GridEditableItem;

            HtmlInputHidden hdSiteName = (HtmlInputHidden)editedItem.FindControl("hdSiteName");
            TextBox txtSiteName = (TextBox)editedItem.FindControl("txtSiteName");
            DropDownList lbCountryCode = (DropDownList)editedItem.FindControl("lbCountryCode");
            CheckBox chkSiteActive = (CheckBox)editedItem.FindControl("chkSiteActive");
            CheckBox chkContractorActive = (CheckBox)editedItem.FindControl("chkContractorActive");
            CheckBox chkCSIEnabled = (CheckBox)editedItem.FindControl("chkCSIEnabled");
            CheckBox chkMCSInstalled = (CheckBox)editedItem.FindControl("chkMCSInstalled");
            Label lblError1 = (Label)editedItem.FindControl("lblError1");

            Label lblError = new Label();
            RGSiteConfig.Controls.Add(lblError);

            try
            {
                objCMSites.SiteID = 0;
                if (String.IsNullOrWhiteSpace(objCMSites.CurrentUser))
                {
                    if (!String.IsNullOrWhiteSpace(((Main)this.Master).UserName))
                        Session["PERMISSIONLOGONUSER"] = objCMSites.CurrentUser = ((Main)this.Master).UserName;
                    else
                        Session["PERMISSIONLOGONUSER"] = objCMSites.CurrentUser = hdUserName.Value;
                }

                objCMSites.OldSiteName = objCMSites.SiteName = txtSiteName.Text.Trim().Replace("'", "''");
                objCMSites.CountryCode = lbCountryCode.SelectedValue;
                objCMSites.SiteActive = chkSiteActive.Checked;
                objCMSites.ContractorActive = chkContractorActive.Checked;
                objCMSites.CSIEnabled = chkCSIEnabled.Checked;
                objCMSites.MCSInstalled = chkMCSInstalled.Checked;
                objCMSites.IsCM = true;
                
                objCMSites.UpdateSiteConfig();

                Session["Sites"] = null;
                objCMSites.SiteID = 0;
                RGSiteConfig.MasterTableView.Rebind();

                lblError.Text = "Site saved.";
                lblError.ForeColor = Color.Green;
            }
            catch (Exception ex)
            {
                lblError1.Text = "Unable to insert Site. Reason: " + ex.Message;
                e.Canceled = true;
                return;
            }
        }

        protected void RGSiteConfig_ItemCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName.Equals("Edit") || e.CommandName.Equals("EditSiteConfig"))
            {
                GridDataItem item = (GridDataItem)e.Item;
                LinkButton lnkEdit = (LinkButton)item.FindControl("lnkEdit");

                string[] commandArgs = lnkEdit.CommandArgument.ToString().Split(new char[] { ',' });
                hdSiteIDForModalPopUp.Value = lblSiteID.Text = commandArgs[0];
                hdContractorIDForModalPopUp.Value = lblContractorID.Text = commandArgs[1];
                hdContactID2.Value = "0";
                hdCienaContactID2.Value = "0";
                spanusergroupgs.InnerText = txtSiteName.Text = item["SiteName"].Text;

                LoadCountries();
                lbCountryCode.ClearSelection();
                lbCountryCode.Items.FindByText(commandArgs[2]).Selected = true;

                chkSiteActive.Checked = Convert.ToBoolean(commandArgs[3].ToLower());
                chkContractorActive.Checked = Convert.ToBoolean(commandArgs[4].ToLower());
                chkCSIEnabled.Checked = Convert.ToBoolean(commandArgs[5].ToLower());
                chkMCSInstalled.Checked = Convert.ToBoolean(commandArgs[6].ToLower());

                txtSearchPSACompany.Text = "";
                txtSearchGroup.Text = "";
                bind2Groups(false);
                bind2TCACompanies(false);
                bind2Permissions(false);
                bindAllGrids();
                ModalPopupExtenderug.Show();
            }
        }

        #region bind Modal Pop Up Grids/ListBoxes
        public void bind2Groups(bool styleModified)
        {
            objCMSites.UGID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);
            ds = objCMSites.ListSitesForUserGroup("2");

            string strFilters = "";
            if (String.IsNullOrWhiteSpace(txtSearchGroup.Text))
                strFilters = "%";
            else if (!txtSearchGroup.Text.Contains("%"))
                strFilters = "%" + txtSearchGroup.Text.Trim() + "%";
            else
                strFilters = txtSearchGroup.Text.Trim();

            DataView dv = ds.Tables[1].DefaultView;
            dv.RowFilter = "UserGroupName LIKE '" + strFilters + "'";
            
            if (styleModified)
                Master.StyleModifiedListItems(ds, "UserGroupName", "UserGroupID", ref lbIncludedGroups, ref lbAvailableGroups);
            else
            {
                Session["AddedListItems"] = null;
                Session["RemovedListItems"] = null;

                lbIncludedGroups.DataSource = ds.Tables[0];
                lbIncludedGroups.DataTextField = "UserGroupName";
                lbIncludedGroups.DataValueField = "UserGroupID";
                lbIncludedGroups.DataBind();


                //Bind available permissions
                lbAvailableGroups.DataSource = ds.Tables[1];
                lbAvailableGroups.DataTextField = "UserGroupName";
                lbAvailableGroups.DataValueField = "UserGroupID";
                lbAvailableGroups.DataBind();
            }
        }
        public void bind2TCACompanies(bool styleModified)
        {
            objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);

            ds = objCMSites.GetTCACompaniesBySiteID();

            string strFilters = "";
            if (String.IsNullOrWhiteSpace(txtSearchPSACompany.Text))
                strFilters = "%";
            else if (!txtSearchPSACompany.Text.Contains("%"))
                strFilters = "%" + txtSearchPSACompany.Text.Trim() + "%";
            else
                strFilters = txtSearchPSACompany.Text.Trim();

            DataView dv = ds.Tables[1].DefaultView;
            dv.RowFilter = "PartyName LIKE '" + strFilters + "'";

            if (styleModified)
                Master.StyleModifiedListItems(ds, "PartyName", "PartyID", ref lbIncludedTCACompanies, ref lbAvailableTCACompanies);
            else
            {
                Session["AddedListItems"] = null;
                Session["RemovedListItems"] = null;

                lbIncludedTCACompanies.DataSource = ds.Tables[0];
                lbIncludedTCACompanies.DataTextField = "PartyName";
                lbIncludedTCACompanies.DataValueField = "PartyID";
                lbIncludedTCACompanies.DataBind();


                lbAvailableTCACompanies.DataSource = ds.Tables[1];
                lbAvailableTCACompanies.DataTextField = "PartyName";
                lbAvailableTCACompanies.DataValueField = "PartyID";
                lbAvailableTCACompanies.DataBind();
            }
        }
        public void bind2Permissions(bool styleModified)
        {
            objCMSites.SiteID = Convert.ToInt32(hdSiteIDForModalPopUp.Value);

            ds = objCMSites.GetApplicationPermissions();

            if (styleModified)
                Master.StyleModifiedListItems(ds, "AppPermName", "PermissionID", ref lbIncludedAppPerm, ref lbAvailableAppPerm);
            else
            {
                Session["AddedListItems"] = null;
                Session["RemovedListItems"] = null;

                lbIncludedAppPerm.DataSource = ds.Tables[1];
                lbIncludedAppPerm.DataTextField = "AppPermName";
                lbIncludedAppPerm.DataValueField = "PermissionID";
                lbIncludedAppPerm.DataBind();


                //Bind available permissions
                lbAvailableAppPerm.DataSource = ds.Tables[2];
                lbAvailableAppPerm.DataTextField = "AppPermName";
                lbAvailableAppPerm.DataValueField = "PermissionID";
                lbAvailableAppPerm.DataBind();
            }
        }
        public void bindAllGrids()
        {
            objCMSites.SiteID = Convert.ToInt16(hdSiteIDForModalPopUp.Value);

            ds = objCMSites.GetAllInformationForSite();

            if (ds.Tables[1].Rows.Count > 0)
            {
                gvcontact.DataSource = ds.Tables[1];
                gvcontact.DataBind();
                gvcontact.Visible = true;
            }
            else
                gvcontact.Visible = false;

            if (ds.Tables[2].Rows.Count > 0)
            {
                gvcienaPM.DataSource = ds.Tables[2];
                gvcienaPM.DataBind();
                gvcienaPM.Visible = true;
            }
            else
                gvcienaPM.Visible = false;

            if (ds.Tables[3].Rows.Count > 0)
            {
                dlattachments.DataSource = ds.Tables[3];
                dlattachments.DataBind();
                dlattachments.Visible = true;
            }
            else
                dlattachments.Visible = false;

            this.txtfile.Text = "";

            if (ds.Tables[4].Rows.Count > 0)
            {
                gvip.DataSource = ds.Tables[4];
                gvip.DataBind();
                gvip.Visible = true;
            }
            else
                gvip.Visible = false;

            this.txtip1.Text = "";
        }
        public void bindContacts()
        {
            DataTable dtcontact;
            objCMSites.SiteID = Convert.ToInt16(hdSiteIDForModalPopUp.Value);
            dtcontact = objCMSites.ListSiteContact().Tables[0];
            if (dtcontact.Rows.Count > 0)
            {
                gvcontact.DataSource = dtcontact;
                gvcontact.DataBind();
                gvcontact.Visible = true;
            }
            else
                gvcontact.Visible = false;
        }
        public void bindCienaContacts()
        {
            DataTable dtcienacontact;
            objCMSites.SiteID = Convert.ToInt16(hdSiteIDForModalPopUp.Value);
            dtcienacontact = objCMSites.ListCienaContact().Tables[0];
            if (dtcienacontact.Rows.Count > 0)
            {
                gvcienaPM.DataSource = dtcienacontact;
                gvcienaPM.DataBind();
                gvcienaPM.Visible = true;
            }
            else
                gvcienaPM.Visible = false;
        }
        public void bindForms()
        {
            DataTable dtforms;
            objCMSites.SiteID = Convert.ToInt16(hdSiteIDForModalPopUp.Value);
            dtforms = objCMSites.ListSiteAttachment().Tables[0];

            if (dtforms.Rows.Count > 0)
            {
                dlattachments.DataSource = dtforms;
                dlattachments.DataBind();
                dlattachments.Visible = true;
            }
            else
                dlattachments.Visible = false;

            this.txtfile.Text = "";
        }
        public void bindIP()
        {
            DataTable dtip;
            objCMSites.SiteID = Convert.ToInt16(hdSiteIDForModalPopUp.Value);
            dtip = objCMSites.ListSiteIP().Tables[0];

            if (dtip.Rows.Count > 0)
            {
                gvip.DataSource = dtip;
                gvip.DataBind();
                gvip.Visible = true;
            }
            else
                gvip.Visible = false;

            this.txtip1.Text = "";
        }
        public void LoadCountries()
        {
            lbCountryCode.DataSource = Master.GetCountries;
            lbCountryCode.DataTextField = "CountryName";
            lbCountryCode.DataValueField = "Code";
            lbCountryCode.DataBind();
        }
        #endregion

        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            string sSiteID = hdSiteIDForModalPopUp.Value;
            Label lblError = new Label();
            RGSiteConfig.Controls.Add(lblError);

            try
            {
                if (String.IsNullOrWhiteSpace(objCMSites.CurrentUser))
                {
                    if (!String.IsNullOrWhiteSpace(((Main)this.Master).UserName))
                        Session["PERMISSIONLOGONUSER"] = objCMSites.CurrentUser = ((Main)this.Master).UserName;
                    else
                        Session["PERMISSIONLOGONUSER"] = objCMSites.CurrentUser = hdUserName.Value;
                }

                objCMSites.OldSiteName = spanusergroupgs.InnerText.Replace("'", "''");
                objCMSites.SiteName = txtSiteName.Text.Trim().Replace("'", "''");
                objCMSites.CountryCode = lbCountryCode.SelectedValue;
                objCMSites.SiteActive = chkSiteActive.Checked;
                objCMSites.ContractorActive = chkContractorActive.Checked;
                objCMSites.CSIEnabled = chkCSIEnabled.Checked;
                objCMSites.MCSInstalled = chkMCSInstalled.Checked;
                objCMSites.IsCM = true;

                objCMSites.SiteID = Convert.ToInt32(sSiteID);
                objCMSites.UpdateSiteConfig();

                lblError.Text = "Site saved.";
                lblError.ForeColor = Color.Green;

                Session["Sites"] = null;
                objCMSites.SiteID = 0;
                RGSiteConfig.MasterTableView.Rebind();

                ModalPopupExtenderug.Show();
            }
            catch (Exception ex)
            {
                lblError1.Text = "Unable to update Site. Reason: " + ex.Message;
                ModalPopupExtenderug.Show();
            }
        }

        protected void RGSiteConfig_PreRender(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                string strVal = "";
                string strType = "";

                if (Request.QueryString.AllKeys.Length > 0)
                {
                    string[] strQs = Request.QueryString.AllKeys;
                    string strCommaSeparated = String.Join(",", strQs);
                    strQs = strCommaSeparated.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

                    if (strCommaSeparated.Contains("name") || strCommaSeparated.Contains("sitename") || strCommaSeparated.Contains("mcssitename") || //SiteName
                        strCommaSeparated.Contains("active") || //SiteIsActive //bool column
                        strCommaSeparated.Contains("country") || //CountryOfOrigin
                        strCommaSeparated.Contains("lsw") || //ContractorIsActive //bool column
                        strCommaSeparated.Contains("csi") || //CSIEnabled //bool column
                        strCommaSeparated.Contains("mcs") || //MCSInstalled //bool column
                        strCommaSeparated.Contains("updatedby")  //ModifiedBy
                        )
                    {
                        foreach (string strQ in strQs)
                        {
                            strVal = Request.QueryString[strQ];
                            strType = (!String.IsNullOrWhiteSpace(strQ)) ? strQ.ToLower() : "";
                            AddFilters(strType, strVal);
                        }
                    }
                    else
                    {
                        if (strCommaSeparated.Contains("val") || strCommaSeparated.Contains("type"))
                        {
                            strVal = Request.QueryString["val"];
                            strType = (!String.IsNullOrWhiteSpace(Request.QueryString["type"])) ? Request.QueryString["type"].ToLower() : "";
                            AddFilters(strType, strVal);
                        }
                    }
                }
                else
                {
                    strVal = "true";
                    strType = "active";
                    AddFilters(strType, strVal);
                }
                RGSiteConfig.MasterTableView.Rebind();
            }
        }

        private void AddFilters(string strType, string strVal)
        {
            string strExistingFilter = "";
            GridColumn column;

            if (!String.IsNullOrWhiteSpace(strVal))
            {
                if (strType != "name" && strType != "sitename" && strType != "mcssitename" && //SiteName
                        strType != "active" &&  //SiteIsActive //bool column
                        strType != "country" && //CountryOfOrigin
                        strType != "lsw" && //ContractorIsActive //bool column
                        strType != "csi" && //CSIEnabled //bool column
                        strType != "mcs" && //MCSInstalled //bool column
                        strType != "updatedby" //ModifiedBy
                        )
                    strType = "SiteName";
                strType = (strType == "mcssitename" ||
                    strType == "name"
                    ) ? "SiteName" : strType;
                strType = (strType == "active") ? "SiteIsActive" : strType;
                strType = (strType == "country") ? "CountryOfOrigin" : strType;
                strType = (strType == "lsw") ? "ContractorIsActive" : strType;
                strType = (strType == "csi") ? "CSIEnabled" : strType;
                strType = (strType == "mcs") ? "MCSInstalled" : strType;
                strType = (strType == "updatedby") ? "ModifiedBy" : strType;
                if (strType == "SiteIsActive" ||
                    strType == "ContractorIsActive" ||
                    strType == "CSIEnabled" ||
                    strType == "MCSInstalled")
                {
                    if (strVal != "true" && strVal != "false")
                        strVal = "true";
                }

                strExistingFilter = RGSiteConfig.MasterTableView.FilterExpression;
                RGSiteConfig.MasterTableView.FilterExpression =
                    (strExistingFilter.Contains("] = '")) ? strExistingFilter + " AND [" + strType + "] = '" + strVal + "' " :
                    "[" + strType + "] = '" + strVal + "' ";
                column = RGSiteConfig.MasterTableView.GetColumnSafe(strType);
                column.CurrentFilterFunction = GridKnownFunction.EqualTo;
                column.CurrentFilterValue = strVal;
            }
        }

        protected void btnSearchGroup_Click(object sender, EventArgs e)
        {
            bind2Groups(true);
            ModalPopupExtenderug.Show();
        }

        protected void btnSearcPSACompany_Click(object sender, EventArgs e)
        {
            bind2TCACompanies(true);
            ModalPopupExtenderug.Show();
        }
    }
}

-----------------------------------MCSSites.aspx.cs [ENDS]-----------------------------------
0
Kamal
Top achievements
Rank 1
answered on 20 May 2015, 05:51 PM

I hope my situation is clear.

In few words:

A template edit column (first column in grid, with a hyperlink to open a custom edit popup) vanishes when the page is revisited after saving the grid settings. Means the immediate second column takes place of the first column.

I hope I could attach a screen shot but the forum is not letting me do that. :(

0
Kamal
Top achievements
Rank 1
answered on 21 May 2015, 02:35 PM

Hello Team,

Please can you suggest something.

Thanks

Kamal

0
Kostadin
Telerik team
answered on 22 May 2015, 10:27 AM
Hello Kamal,

I examine the provided code and it looks like properly configure. Nevertheless i would recommend you to try loading the state on Page_Load event handler or Page_PreRender. Keep in mind that you need to call Rebind if you are loading the state on PreRender event.
Additionally I would once again suggest you to use PersistenceFramework to save the current state of the grid. Note that this control is create especially for such projects as yours and it is tested to work correctly in different scenarios.

Regards,
Kostadin
Telerik
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Feedback Portal and vote to affect the priority of the items
Tags
Grid
Asked by
Kamal
Top achievements
Rank 1
Answers by
Kamal
Top achievements
Rank 1
Kostadin
Telerik team
Share this question
or