Unable to select records from only expanded grids in multiple grids

3 posts, 0 answers
  1. Shubham
    Shubham avatar
    32 posts
    Member since:
    May 2013

    Posted 26 May 2014 Link to this post

    Hi all I have Grid having Child grids inside it and am implementing select / deselect all functionality on it it is  working but when I collapse any grid then the record of  that grid getting selected too . Please help me out on that I have used a hiddenfield to keep the client id of  all checkbox against each record. on Item data bound event.  please look in to  the code below Let me knoew What else I  can try.


    <%@ Page Language="C#" MasterPageFile="~/MasterPages/Default.master" AutoEventWireup="true"
        CodeFile="Default.aspx.cs"  Inherits="MainClass"
        Title="Vendor Returns" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder_Content" runat="Server">
        <telerik:RadScriptBlock ID="ItemsRadScriptBlock" runat="server">
            <script type="text/javascript">
               
                var registeredElements = [];
                var selectDeselectAllFlag = true;

                function GetRegisteredServerElement() {
                    try {
                        var clientIDs = document.getElementById('CheckboxIDsHiddenField').value;
                        var inputList = clientIDs.split(',');
                        var clientID = "";
                        alert(inputList.length);
                        for (var i = 0; i < (inputList.length) ; i++) {
                            clientID = inputList[i];
                            var checkbox = document.getElementById(clientID);
                            if (checkbox) {
                                checkbox.checked = selectDeselectAllFlag;
                            }
                        }
                        selectDeselectAllFlag = !selectDeselectAllFlag;
                        return true;
                    }
                    catch (er) {
                    }
                }
                

            </script>
        </telerik:RadScriptBlock>
        <telerik:RadSplitter ID="splitterMain" runat="server">
            <telerik:RadPane ID="panetop" runat="server" SkinID="TopRadPane" Height="80px">
            </telerik:RadPane>
            <telerik:RadSplitBar ID="RadSplitBar1" runat="server">
            </telerik:RadSplitBar>
            <telerik:RadPane ID="panebottom" runat="server" SkinID="BottomRadPane" Scrolling="Both">
                <asp:Label ID="MessageLabel" runat="server" SkinID="MessageLabel" Visible="false"></asp:Label>
                <table width="100%">
                    <tr>
                        <td>
                            <div class="RadGridHorizontalScroll" style="width: auto" id="RadGridTableContainer">
                                <telerik:RadGrid ID="RadGrid" runat="server" OnItemDataBound="RadGrid_ItemDataBound"
                                    OnNeedDataSource="RadGrid_NeedDataSource" OnDetailTableDataBind="RadGrid_DetailTableDataBind"
                                    OnItemCreated="RadGrid_ItemCreated">
                                    <ClientSettings>
                                        <Selecting AllowRowSelect="True"></Selecting>
                                        <Resizing AllowColumnResize="true" EnableRealTimeResize="true" ResizeGridOnColumnResize="true"
                                            ClipCellContentOnResize="true" />
                                    </ClientSettings>
                                    <MasterTableView  CommandItemDisplay="Top" HorizontalAlign="left"
                                        Name="Vendors" HierarchyDefaultExpanded="True" HierarchyLoadMode="Client">
                                        <CommandItemTemplate>
                                            <table class="ContentPaddingLeft">
                                                <tr>
                                                    <td class="ButtonSeparator">
                                                        <asp:LinkButton ID="SelectDeselectAllLinkButton" runat="server" OnClientClick="return GetRegisteredServerElement();"
                                                            Text="Select / Deselect All" SkinID="SmallCommandItemTemplateLinkButton"></asp:LinkButton>
                                                    </td>
                                                </tr>
                                               
                                            </table>
                                        </CommandItemTemplate> 
                                        <Columns>
                                            <telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="">
                                            </telerik:GridBoundColumn>
                                        </Columns>
                                        <ExpandCollapseColumn Visible="False">
                                            <HeaderStyle Width="19px" />
                                        </ExpandCollapseColumn>
                                        <RowIndicatorColumn Visible="False">
                                            <HeaderStyle Width="20px" />
                                        </RowIndicatorColumn>
                                        <DetailTables>
                                            <telerik:GridTableView runat="server" DataKeyNames="VendorID,PartID" Name="VendorReturns"
                                               AllowMultiColumnSorting="true" EnableViewState="true" BorderWidth="1">
                                                <ExpandCollapseColumn Visible="True">
                                                </ExpandCollapseColumn>
                                                <Columns>
                                                    <telerik:GridTemplateColumn UniqueName="ShowEditColumn" ItemStyle-Wrap="false" ItemStyle-HorizontalAlign="Left"
                                                        HeaderText="" Resizable="false" Reorderable="false" ItemStyle-Width="25px" HeaderStyle-Width="85px">
                                                        <ItemTemplate>
                                                            <table style="white-space: nowrap">
                                                                <tr>
                                                                    <td style="border: white">
                                                                        <asp:CheckBox ID="AllowCheckBox" runat="server" />
                                                                        <telerik:RadScriptBlock ID="VendorReturnRadScriptBlock" runat="server">
                                                                            
                                                                        </telerik:RadScriptBlock>
                                                                    </td>
                                                                    <td style="border: white">
                                                                        <asp:LinkButton ID="EditLinkButton" Text="Edit" runat="server" SkinID="SmallLinkButton"></asp:LinkButton>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                        </ItemTemplate>
                                                        <ItemStyle Wrap="true" Width="10px" />
                                                    </telerik:GridTemplateColumn>
                                                    Some other Columns are  here
                                                </Columns>
                                            </telerik:GridTableView>
                                        </DetailTables>
                                    </MasterTableView>
                                </telerik:RadGrid>
                            </div>
                            <telerik:RadAjaxManagerProxy ID="radAjaxProxyManager" runat="server">
                            </telerik:RadAjaxManagerProxy>
                            <telerik:RadAjaxLoadingPanel ID="radAjaxLoadingPanel" runat="server" />
                        </td>
                    </tr>
                </table>
            </telerik:RadPane>
        </telerik:RadSplitter>
        <asp:HiddenField runat="server" ID="CheckboxIDsHiddenField" ClientIDMode="static" />
    </asp:Content>

    And My CS file is as 
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Security;
    using System.Web.UI.WebControls;
    using Telerik.Web.UI;
    using System.Text;

    public partial class MainClass : PageHandler
    {
        #region Declarations
        String clientid = String.Empty;
        StringBuilder _clientIDs = new StringBuilder();

       

        #endregion

        #region Event Handlers

        protected void Page_PreRender(object sender, EventArgs e)
        {
            if (_selectDeselectAllLinkButton != null )
            {
                _selectDeselectAllLinkButton.Enabled = _isChildExist;
            }
            if (_expandCollapsAllLinkButton != null)
                _expandCollapsAllLinkButton.Enabled = _isRowExist;

            AlignRadComboBoxTextLeft(Page);
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            AddCustomPager(RadGrid);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            MessageLabel.Visible = false;
           
            
            RadAjaxManager radAjaxManager = RadAjaxManager.GetCurrent(Page);
            radAjaxManager.AjaxSettings.AddAjaxSetting(radAjaxManager, CheckboxIDsHiddenField);
            radAjaxManager.AjaxSettings.AddAjaxSetting(radAjaxManager, RadGrid);
            radAjaxManager.AjaxSettings.AddAjaxSetting(RadGrid, CheckboxIDsHiddenField);
            radAjaxManager.AjaxSettings.AddAjaxSetting(RadGrid, MessageLabel);
           
        }

      

       

        protected void RadGrid_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
            try
            {
                if (e.Item is GridCommandItem)
                {
                    _selectDeselectAllLinkButton = e.Item.FindControl("SelectDeselectAllLinkButton") as LinkButton;
                    _expandCollapsAllLinkButton = e.Item.FindControl("ExpandCollapsAllLinkButton") as LinkButton;
                }

                if (e.Item is GridDataItem)
                {
                    GridDataItem dataItem = e.Item as GridDataItem;
                    if (dataItem != null)
                    {
                        CheckBox selectCheckBox = dataItem.FindControl("AllowCheckBox") as CheckBox;
                        if (selectCheckBox != null)
                        {
                            clientid = selectCheckBox.ClientID;
                            _clientIDs.Append(clientid);
                            _clientIDs.Append(",");
                        }
                    }
                    _isRowExist = true;
                   
                if (e.Item is GridFooterItem)
                {
                    if (_clientIDs.ToString().Length > 0)
                    {
                        String clientIDs = _clientIDs.ToString(0, _clientIDs.ToString().Length - 1);
                        CheckboxIDsHiddenField.Value = clientIDs;
                    }
                }
            }
            catch (SecurityException ex)
            {
                ExceptionHandler exceptionHandler = new ExceptionHandler(MessageLabel);
                exceptionHandler.HandleException(ex);
            }
            catch (DataPortalException ex)
            {
                ExceptionHandler exceptionHandler = new ExceptionHandler(MessageLabel);
                exceptionHandler.HandleException(ex);
            }
            
        }

       

      

        protected void ExpandCollapsAllLinkButton_Click(object sender, EventArgs e)
        {
            foreach (GridDataItem gridItems in RadGrid.MasterTableView.Items)
            {
                gridItems.Expanded = _flag;
            }
            _flag = !_flag;
        }

        protected void UserStoreroomRadComboBox_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            
            RadGrid.Rebind();
        }

       

        #endregion

        #region Class Functions

        }

        #endregion
    }  

    Please help me as  soon as possible . Thanks in Advance


  2. Shubham
    Shubham avatar
    32 posts
    Member since:
    May 2013

    Posted 29 May 2014 Link to this post

    Please reply soon This is very Important . I have to do it ASAP .
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Angel Petrov
    Admin
    Angel Petrov avatar
    1006 posts

    Posted 29 May 2014 Link to this post

    Hi Shubham,

    Using the code provided I have assembled a sample website but did not notice any abnormalities in the control behavior. Could you please examine the attachment and tell us what differs in your case? Additionally I would like to ask you to prepare for us a video which illustrates the exact behavior. That way we will be able to get a better understanding of the exact problem.

    Regards,
    Angel Petrov
    Telerik
     

    Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

     
Back to Top