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

grid.MasterTableView.GetSelectedItems() is 0

3 Answers 311 Views
Grid
This is a migrated thread and some comments may be shown as answers.
July
Top achievements
Rank 2
July asked on 10 Nov 2011, 09:11 PM
I've a problem.
grid.MasterTableView.GetSelectedItems() == 0

my Aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true" CodeBehind="DocumentsList.aspx.cs" Inherits="WebSearch.UI.DocumentsList" %>
<%@ MasterType VirtualPath="~/UI/Doculex.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<telerik:RadCodeBlock runat="server">

</telerik:RadCodeBlock>
<%-- <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="UserGrid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
                   
                </UpdatedControls>
            </telerik:AjaxSetting>
              <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
                        
                    </UpdatedControls>
                </telerik:AjaxSetting>  
        </AjaxSettings>
    </telerik:RadAjaxManager>--%>
    <div class="headerPage">
        <asp:Label ID="lblTitle" runat="server"></asp:Label>
    </div>
    <div class="containerSub" id ="containerSub" runat="server">
    <telerik:RadSplitter  ID ="Splitter"  Width = "100%"  Height ="100%" Orientation="Vertical"  runat="server">
        <telerik:RadPane runat="server" ID="gridPane" Scrolling="None" Height="80%"  Width=100%>
             <telerik:RadGrid ID="DocumentGrid" runat="server"
            AllowPaging="True" AllowSorting="True"
            AllowFilteringByColumn="true"             
            CellSpacing="0"
            EnableHeaderContextMenu ="true" EnableHeaderContextFilterMenu="true"
            GridLines="None"  
            Width="99.8%" PageSize="12" Height="500px" AutoGenerateColumns="False"  
           EnableLinqExpressions="false"  EnableViewState="false"
            onneeddatasource="DocumentGrid_NeedDataSource"
            onprerender="DocumentGrid_PreRender"
                 onitemcommand="DocumentGrid_ItemCommand"   >
            <ItemStyle VerticalAlign="Top" />
           
            <GroupingSettings CaseSensitive="false" />
         
            <MasterTableView  CommandItemDisplay="None"  DataKeyNames="Id" Width="100%"
                TableLayout="Auto"  PagerStyle-Mode="NumericPages">
                   <Columns>
                         <telerik:GridTemplateColumn  UniqueName="Select" HeaderStyle-Width="3%"  AllowFiltering="false">
                          
                          <ItemTemplate>
                           <asp:CheckBox  id="chkSelect" runat="server"  />
                          </ItemTemplate>
                          
                       </telerik:GridTemplateColumn>
                    </Columns>
                </MasterTableView>
                  <ClientSettings Scrolling-SaveScrollPosition="true"  EnablePostBackOnRowClick="true"  Scrolling-AllowScroll="true"  ActiveRowIndex="true" AllowColumnsReorder="true" AllowColumnHide="true"
                  >
                  <Selecting AllowRowSelect="true" />
                           <ClientEvents OnColumnHidden="ColumnHiding"   />
                          <Resizing AllowColumnResize="false"></Resizing>

                              
                         </ClientSettings>
                </telerik:RadGrid>
        </telerik:RadPane>
       <telerik:RadPane ID="searchPane" Width="20px"  runat="server" Scrolling="None" Height="80%"  >
            <telerik:RadSlidingZone runat="server" ID="PreviewZone" SlideDirection="Left" >
                  <telerik:RadSlidingPane ID="DocPreview" runat="server" Width="300px" OnClientDocked = "PaneDockDocPreview"
                                             OnClientUndocked = "PaneUnDockDocPreview">
                                             <div Id="preview" runat="server"></div>
                 </telerik:RadSlidingPane>
            </telerik:RadSlidingZone>
        </telerik:RadPane>
    </telerik:RadSplitter>
    
    </div>




</asp:Content>

my C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Resources;
using System.Web;
using Telerik.Web.UI;
using WebSearch.Components;
using WebSearch.SecurityModel;
using WebSearch.UI.Model;
using WebSearch.UI.Model.Items.Grid;
using WebSearch.UI.Model.Screen;

namespace WebSearch.UI
{
    public partial class DocumentsList : System.Web.UI.Page
    {
        #region Properties

        private GridScreen _grid;
        private UIContainer _container;
        private string _culture;
        private ResourceManager _resources;
        private readonly Organization _organization = new Organization();

        #endregion

      

        #region Events
        protected void Page_Load(object sender, EventArgs e)
        {
            GetInfo();

            if (Page.IsPostBack)
            {
                App.SavePreferencesGrid(DocumentGrid);
                App.SavePane();
            }

            if (!Page.IsPostBack)
            {
                LoadSettings();
                CreateGrid();
                App.LoadPreferencesGrid(DocumentGrid);
                App.LoadPane(PreviewZone);

               
            }
            
            DocumentGrid.HeaderContextMenu.ItemCreated += new RadMenuEventHandler(HeaderContextMenu_ItemCreated);

        }

       

        void HeaderContextMenu_ItemCreated(object sender, RadMenuEventArgs e)
        {
            CommonFunctions.HideColumns(sender, e);
            CommonFunctions.HideSpecialColumns("Select", e.Item);
            CommonFunctions.HideSpecialColumns("Id", e.Item);
           
        }
        
        #endregion

        #region Methods
      
        

        private void CreateGrid()
        {
           
            List<DocumentTypeField> documentTypeFieldList = _organization.GetDocumentTypeField(1);

            foreach (DocumentTypeField documentTypeField in documentTypeFieldList)
            {
                GridBoundColumn boundColumn = new GridBoundColumn();
                DocumentGrid.MasterTableView.Columns.Add(boundColumn);

                boundColumn.DataField = documentTypeField.Name;
                boundColumn.HeaderText = documentTypeField.Header;
                boundColumn.UniqueName = documentTypeField.Name;
                boundColumn.Visible = documentTypeField.IsVisible;
                if (!documentTypeField.IsVisible) boundColumn.Display = false;
            }

            GridBoundColumn boundColumnId = new GridBoundColumn();
            DocumentGrid.MasterTableView.Columns.Add(boundColumnId);

            boundColumnId.DataField = "Id";
            boundColumnId.UniqueName = "Id";
            boundColumnId.Visible = false;
            boundColumnId.Display = false;

        }

        private void GetInfo()
        {
            _culture = App.CurrentCulture();
            _resources = App.GetMasterResources("DocumentsList");
        }

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

            DocPreview.IconUrl = VirtualPathUtility.ToAbsolute("~/UI/Images/layout.png");
            DocPreview.TabView = SplitterSlidePaneTabView.ImageOnly;
            DocPreview.Title = _resources.GetString("TitleViewPane", new CultureInfo(_culture));
            DocPreview.UndockText =
                _resources.GetString("UndockViewPane", new CultureInfo(_culture));
            DocPreview.DockText =
                _resources.GetString("DockViewPane", new CultureInfo(_culture));
            DocPreview.ToolTip =
                _resources.GetString("ToolTipViewPane", new CultureInfo(_culture));

            PreviewZone.Style.Add("position", "static");
            
        }
        #endregion

        protected void DocumentGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
           // RadRibbonBar menu= Master.FindControl("TopMenu") as RadRibbonBar;
            DocumentGrid.DataSource = GenericGrid.ListDocuments;
        }

        protected void DocumentGrid_PreRender(object sender, EventArgs e)
        {
            DocumentGrid.MasterTableView.GetColumnSafe("RowIndicator").Display = false;
            DocumentGrid.MasterTableView.GetColumnSafe("Id").Display = false;
            CommonFunctions.GridOptions(DocumentGrid);
        }

        protected void DocumentGrid_ItemCommand(object sender, GridCommandEventArgs e)
        {
            RadGrid grid = (RadGrid)sender;


            switch (e.CommandName)
            {
                case "RowClick":

                    preview.InnerHtml = null;

                    foreach (GridDataItem selectedItem in grid.MasterTableView.GetSelectedItems())
                    {
                        string[] extension = selectedItem["FileName"].Text.Split('.');
                        string path = AppDomain.CurrentDomain.BaseDirectory + "TempFolder";
                        String fileName = selectedItem["FileName"].Text.ToString();
                        path = path + " \\" + fileName;
                        switch (extension[1].ToLower())
                        {
                            case "txt":
                                StreamReader oStreamReader = File.OpenText(path);
                                string contents = oStreamReader.ReadToEnd();

                                preview.InnerHtml = contents;

                                oStreamReader.Close();
                                break;



                            case "pdf":

                                preview.InnerHtml =
                                    "<iframe src=\"../TempFolder/" + fileName + "\" style=\"width:718px; height:700px;\" frameborder=\"0\"></iframe>";

                                break;

                            default:

                                preview.InnerHtml = "<b>Preview not available<b>";
                                break;

                        }


                        PreviewZone.ExpandedPaneId = "DocPreview";
                        PreviewZone.DockedPaneId = "DocPreview";

                    }
                    break;

            }
        }
    }
}

thanks

3 Answers, 1 is accepted

Sort by
0
Accepted
Jayesh Goyani
Top achievements
Rank 2
answered on 11 Nov 2011, 07:16 AM
Hello Julieta,

Your code :
if (!Page.IsPostBack)
            {
                LoadSettings();
                CreateGrid();
                App.LoadPreferencesGrid(DocumentGrid);
                App.LoadPane(PreviewZone);
 
                
            }

New Code :
if (!Page.IsPostBack)
            {
                LoadSettings();
                CreateGrid();
              //  App.LoadPreferencesGrid(DocumentGrid);
                App.LoadPane(PreviewZone);
 
                
            }

Let me know above worked worked for getting the selected item form grid ?

If yes then remove commented code line from page_load event and write this line into Grid_Prerender event.

Thanks,
Jayesh Goyani
0
July
Top achievements
Rank 2
answered on 11 Nov 2011, 02:35 PM
thanks! But does not work! :-(

grid.MasterTableView.GetSelectedItems() is 0

I add RadpanelAjax with EnabledAjax= false but does not work
0
July
Top achievements
Rank 2
answered on 11 Nov 2011, 03:49 PM
I found the error!! :-) YUPIiiiiiiiiiiii!!
I post my code for other peoples! :-)

RadGrid need EnabledViewState = true
And need RadajaxPanel with EnabledAjax=false :-)

C#

using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Resources;
using System.Web;
using Telerik.Web.UI;
using WebSearch.Components;
using WebSearch.SecurityModel;
using WebSearch.UI.Model;
using WebSearch.UI.Model.Items.Grid;
using WebSearch.UI.Model.Screen;

namespace WebSearch.UI
{
    public partial class DocumentsList : System.Web.UI.Page
    {
        #region Properties

        private GridScreen _grid;
        private UIContainer _container;
        private string _culture;
        private ResourceManager _resources;
        private readonly Organization _organization = new Organization();
        private GridDataItem[] _collection;
        #endregion

      

        #region Events
        protected void Page_Load(object sender, EventArgs e)
        {
            GetInfo();

            if (Page.IsPostBack)
            {
                App.SavePreferencesGrid(DocumentGrid);
                App.SavePane();
             
            }

            if (!Page.IsPostBack)
            {
                LoadSettings();

                App.LoadPreferencesGrid(DocumentGrid);
                App.LoadPane(PreviewZone);

               
            }
            
            DocumentGrid.HeaderContextMenu.ItemCreated += new RadMenuEventHandler(HeaderContextMenu_ItemCreated);

        }

       


        void HeaderContextMenu_ItemCreated(object sender, RadMenuEventArgs e)
        {
            CommonFunctions.HideColumns(sender, e);
            CommonFunctions.HideSpecialColumns("Select", e.Item);
            CommonFunctions.HideSpecialColumns("Id", e.Item);
           
        }
        
        #endregion

        #region Methods
      
        

      

        private void GetInfo()
        {
            _culture = App.CurrentCulture();
            _resources = App.GetMasterResources("DocumentsList");
        }

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

            DocPreview.IconUrl = VirtualPathUtility.ToAbsolute("~/UI/Images/layout.png");
            DocPreview.TabView = SplitterSlidePaneTabView.ImageOnly;
            DocPreview.Title = _resources.GetString("TitleViewPane", new CultureInfo(_culture));
            DocPreview.UndockText =
                _resources.GetString("UndockViewPane", new CultureInfo(_culture));
            DocPreview.DockText =
                _resources.GetString("DockViewPane", new CultureInfo(_culture));
            DocPreview.ToolTip =
                _resources.GetString("ToolTipViewPane", new CultureInfo(_culture));

            PreviewZone.Style.Add("position", "static");
            
        }
        #endregion

        protected void DocumentGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
        {
           // RadRibbonBar menu= Master.FindControl("TopMenu") as RadRibbonBar;
            DocumentGrid.DataSource = GenericGrid.ListDocuments;
        }

        protected void DocumentGrid_PreRender(object sender, EventArgs e)
        {
            DocumentGrid.MasterTableView.GetColumnSafe("RowIndicator").Display = false;
            //DocumentGrid.MasterTableView.GetColumnSafe("Id").Display = false;
            CommonFunctions.GridOptions(DocumentGrid);
        }

        protected void DocumentGrid_ItemCommand(object sender, GridCommandEventArgs e)
        {
            RadGrid grid = (RadGrid)sender;


            switch (e.CommandName)
            {
                case "RowClick":

                    preview.InnerHtml = null;

                    foreach (GridDataItem selectedItem in DocumentGrid.MasterTableView.GetSelectedItems())
                    {
                        string[] extension = selectedItem["Id"].Text.Split('.');
                        string path = AppDomain.CurrentDomain.BaseDirectory + "TempFolder";
                        //String fileName = selectedItem["FileName"].Text.ToString();
                        //path = path + " \\" + fileName;
                        //switch (extension[1].ToLower())
                        //{
                        //    case "txt":
                        //        StreamReader oStreamReader = File.OpenText(path);
                        //        string contents = oStreamReader.ReadToEnd();

                        //        preview.InnerHtml = contents;

                        //        oStreamReader.Close();
                        //        break;



                        //    case "pdf":

                        //        preview.InnerHtml =
                        //            "<iframe src=\"../TempFolder/" + fileName + "\" style=\"width:718px; height:700px;\" frameborder=\"0\"></iframe>";

                        //        break;

                        //    default:

                        //        preview.InnerHtml = "<b>Preview not available<b>";
                        //        break;

                        //}


                        PreviewZone.ExpandedPaneId = "DocPreview";
                        PreviewZone.DockedPaneId = "DocPreview";

                    }
                    break;

            }
        }
    }
}


ASPX:
<%@ Page Title="" Language="C#" MasterPageFile="~/UI/Doculex.Master" AutoEventWireup="true" CodeBehind="DocumentsList.aspx.cs" Inherits="WebSearch.UI.DocumentsList" %>
<%@ MasterType VirtualPath="~/UI/Doculex.Master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script  type="text/javascript">
    function RowClick(sender, eventArgs) {
        alert(eventArgs);
    }
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
  <telerik:RadAjaxPanel  runat="server"   EnableViewState="true"  EnableEmbeddedScripts="true" EnableAJAX= "false"   >
<%-- <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" >
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="UserGrid">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
                   
                </UpdatedControls>
            </telerik:AjaxSetting>
              <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="UserGrid" LoadingPanelID="RadAjaxLoadingPanel1" />
                        
                    </UpdatedControls>
                </telerik:AjaxSetting>  
        </AjaxSettings>
    </telerik:RadAjaxManager>--%>
    <div class="headerPage">
        <asp:Label ID="lblTitle" runat="server"></asp:Label>
    </div>
    <div class="containerSub" id ="containerSub" runat="server">
    <telerik:RadSplitter  ID ="Splitter"  Width = "100%"  Height ="100%" Orientation="Vertical"  runat="server">
        <telerik:RadPane runat="server" ID="gridPane" Scrolling="None" Height="80%"  Width="100%">
               
             
             <telerik:RadGrid ID="DocumentGrid" runat="server"
                AllowPaging="True" AllowSorting="True"
                AllowFilteringByColumn="true"             
                CellSpacing="0"
                EnableHeaderContextMenu ="true" EnableHeaderContextFilterMenu="true"
                GridLines="None"   
                Width="99.8%" PageSize="12" Height="500px" AutoGenerateColumns="true"  
                EnableLinqExpressions="false"  EnableViewState="True"
                onneeddatasource="DocumentGrid_NeedDataSource"
                onprerender="DocumentGrid_PreRender"
                onitemcommand="DocumentGrid_ItemCommand"   >
            <ItemStyle VerticalAlign="Top" />
           
            <GroupingSettings CaseSensitive="false" />
         
            <MasterTableView  CommandItemDisplay="None"  DataKeyNames="Id" Width="100%"
                TableLayout="Auto"  PagerStyle-Mode="NumericPages" EditMode="InPlace">
                  <%-- <Columns>
                         <telerik:GridTemplateColumn  UniqueName="Select" HeaderStyle-Width="3%"  AllowFiltering="false">
                          
                          <ItemTemplate>
                           <asp:CheckBox  id="chkSelect" runat="server"  />
                          </ItemTemplate>
                          
                       </telerik:GridTemplateColumn>
                    </Columns>--%>
                </MasterTableView>
                  <ClientSettings Scrolling-SaveScrollPosition="true"  EnablePostBackOnRowClick="true"  Scrolling-AllowScroll="true"  ActiveRowIndex="true" AllowColumnsReorder="true" AllowColumnHide="true"
                  >
                  <Selecting AllowRowSelect="true" />
                           <ClientEvents OnColumnHidden="ColumnHiding" OnRowClick="RowClick"   />
                          <Resizing AllowColumnResize="false"></Resizing>

                              
                         </ClientSettings>
                </telerik:RadGrid>

               
        </telerik:RadPane>
       <telerik:RadPane ID="searchPane" Width="20px"  runat="server" Scrolling="None" Height="80%"  >
            <telerik:RadSlidingZone runat="server" ID="PreviewZone" SlideDirection="Left" >
                  <telerik:RadSlidingPane ID="DocPreview" runat="server" Width="300px" OnClientDocked = "PaneDockDocPreview"
                                             OnClientUndocked = "PaneUnDockDocPreview">
                                             <div Id="preview" runat="server"></div>
                 </telerik:RadSlidingPane>
            </telerik:RadSlidingZone>
        </telerik:RadPane>
    </telerik:RadSplitter>
    
    </div>

    </telerik:RadAjaxPanel>


</asp:Content>


Tags
Grid
Asked by
July
Top achievements
Rank 2
Answers by
Jayesh Goyani
Top achievements
Rank 2
July
Top achievements
Rank 2
Share this question
or