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

Unable to select records from only expanded grids in multiple grids

2 Answers 35 Views
Ajax
This is a migrated thread and some comments may be shown as answers.
Shubham
Top achievements
Rank 1
Shubham asked on 26 May 2014, 03:10 PM
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 Answers, 1 is accepted

Sort by
0
Shubham
Top achievements
Rank 1
answered on 29 May 2014, 07:55 AM
Please reply soon This is very Important . I have to do it ASAP .
0
Angel Petrov
Telerik team
answered on 29 May 2014, 01:12 PM
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.

 
Tags
Ajax
Asked by
Shubham
Top achievements
Rank 1
Answers by
Shubham
Top achievements
Rank 1
Angel Petrov
Telerik team
Share this question
or