[CLOSED] Problem with selecting values in gridpanel.

  1. #1

    [CLOSED] Problem with selecting values in gridpanel.

    Hi, sorry for bothering you again.

    I'm having another problem, now with a GridPanel.
    I'm trying to get the selected rows from a grid panel, and also to set the selected values.

    This is a test page i made, i hope you can reproduce the problem too:
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        public partial class Test : System.Web.UI.Page
        {
            private List<string> _selectedValues = new List<string>();
            protected void Page_Load(object sender, EventArgs e)
            {
                ImageButton1.DirectClick += new ComponentDirectEvent.DirectEventHandler(ImageButton1_DirectClick);
                btnSelect.DirectClick += new ComponentDirectEvent.DirectEventHandler(btnSelect_DirectClick);
                btnGetSelected.DirectClick += new ComponentDirectEvent.DirectEventHandler(btnGetSelected_DirectClick);
                ConfigureGrid();
            }
    
            void btnGetSelected_DirectClick(object sender, DirectEventArgs e)
            {
                UpdateSelectedValues();
    
                NotificationConfig notificationConfig = new NotificationConfig
                {
                    Title = "Selected Values",
                    ShowMode = ShowMode.Grid,
                    ShowPin = false,
                    Html = string.Format("<span>{0} rows selected</span>", SelectedValues.Count),
                };
    
                Ext.Net.Notification.Show(notificationConfig);
            }
    
            void btnSelect_DirectClick(object sender, DirectEventArgs e)
            {
                SelectedValues = new List<string>() { "1", "3", "4" };
                FillGrid();
            }
    
            void ImageButton1_DirectClick(object sender, DirectEventArgs e)
            {
                FillGrid();
            }
    
    
            private RowSelectionModel UpdateSelectedValues()
            {
                RowSelectionModel sm = grdGenerica.GetSelectionModel() as RowSelectionModel;
                sm.SelectedRows.Select(row => row.RecordID).ToList();
                return sm;
            }
            List<string> SelectedValues
            {
                get
                {
                    return _selectedValues;
                }
                set
                {
                    _selectedValues = value;
                }
            }
    
            protected void storeGenerico_RefreshData(object sender, StoreRefreshDataEventArgs e)
            {
                FillGrid();
            }
    
            protected void FillGrid()
            {
                storeGenerico.DataSource = GetData();
                storeGenerico.DataBind();
    
                RowSelectionModel selectionModel = (grdGenerica.SelectionModel.First() as RowSelectionModel);
                if (X.IsAjaxRequest)
                {
                    selectionModel.SelectedRows.AddRange(SelectedValues.ConvertAll(val => new SelectedRow(val) { AutoDataBind = true }));
                }
                else
                {
                    selectionModel.SelectById(SelectedValues.ToArray());
                }
    
                if (X.IsAjaxRequest)
                {
                    grdGenerica.Update();
                }
            }
    
            private List<TestObject> GetData()
            {
                return new List<TestObject>() {
                    new TestObject() { Id="1", Name="Test A" },
                    new TestObject() { Id="2", Name="Test B" },
                    new TestObject() { Id="3", Name="Test C" },
                    new TestObject() { Id="4", Name="Test D" },
                    new TestObject() { Id="5", Name="Test E" },
                    new TestObject() { Id="6", Name="Test F" },
                    new TestObject() { Id="7", Name="Test G" },
                    new TestObject() { Id="8", Name="Test H" },
                };
            }
    
            private void ConfigureGrid()
            {
                grdGenerica.SelectionModel.Clear();
                grdGenerica.SelectionModel.Add(new CheckboxSelectionModel());
    
                List<RecordField> fields = new List<RecordField>()
                {
                    new RecordField("Id"),
                    new RecordField("Name")
                };
                foreach (RecordField field in fields)
                {
    
                    if (!X.IsAjaxRequest)
                    {
                        storeGenerico.Reader.Reader.Fields.Add(field);
                    }
                    else
                    {
                        storeGenerico.AddField(field);
                    }
                }
                //grdGenerica.AutoExpandColumn = "Name";
                grdGenerica.Title = Title;
            }
    
            class TestObject
            {
                public string Id { get; set; }
                public string Name { get; set; }
            }
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:resourcemanager id="ResourceManager1" theme="Gray" runat="server" debugconsole="Ext">
    </ext:resourcemanager>
        <ext:button id="ImageButton1" runat="server" width="140" stylespec="margin:auto;" text="Load Grid"> </ext:button>
        <ext:button id="btnSelect" runat="server" width="140" stylespec="margin:auto;" text="Select Values"> </ext:button>
        <ext:button id="btnGetSelected" runat="server" width="140" stylespec="margin:auto;" text="Get Selected Values"> </ext:button>
        <ext:gridpanel id="grdGenerica" runat="server" cls="x-grid-custom" header="false"
            border="true" striperows="true" trackmouseover="true" autoheight="true">
            <TopBar>
            </TopBar>
            <Store>
                <ext:Store ID="storeGenerico" runat="server" OnRefreshData="storeGenerico_RefreshData">
                    <DirectEventConfig IsUpload="true" />
                    <Reader>
                        <ext:JsonReader />
                    </Reader>
                </ext:Store>
            </Store>
            <SelectionModel>
                <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true" />
            </SelectionModel>
            <LoadMask Msg="Cargando datos..." ShowMask="true" />
        </ext:gridpanel>
        </form>
    </body>
    </html>
    Last edited by Daniil; Jan 16, 2012 at 1:27 PM. Reason: [CLOSED]
  2. #2
    Hi,

    I confirmed the example you posted doesn't work well.

    Lets start from the example below. Seems it works as you need.

    Example
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        protected void Load(object sender, DirectEventArgs e)
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[] 
                { 
                    new object[] { "test1", "test2", "test3" },
                    new object[] { "test4", "test5", "test6" },
                    new object[] { "test7", "test8", "test9" },
                };
            store.DataBind();
        }
    
        protected void Select(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
    
            selModel.SelectedRows.Clear();
            selModel.SelectedRows.Add(new SelectedRow(0));
            selModel.SelectedRows.Add(new SelectedRow(2));
            selModel.UpdateSelection();
        }
    
        protected void GetSelected(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
            StringBuilder rows = new StringBuilder();
            foreach (SelectedRow row in selModel.SelectedRows)
            {
                rows.Append(String.Format("Index: {0}; RecordID: {1}<br/>", row.RowIndex, row.RecordID));
            }
            X.Msg.Alert("Selected", rows.ToString()).Show();
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            <ext:Button runat="server" Text="Load" OnDirectClick="Load" />
            <ext:Button runat="server" Text="Select some" OnDirectClick="Select" />
            <ext:Button runat="server" Text="Get selected" OnDirectClick="GetSelected" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store runat="server">
                        <Reader>
                            <ext:ArrayReader>
                                <Fields>
                                    <ext:RecordField Name="test1" />
                                    <ext:RecordField Name="test2" />
                                    <ext:RecordField Name="test3" />
                                </Fields>
                            </ext:ArrayReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="Test1" DataIndex="test1" />
                        <ext:Column Header="Test2" DataIndex="test2" />
                        <ext:Column Header="Test3" DataIndex="test3" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel runat="server" />
                </SelectionModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  3. #3
    I confirmed that your example works.
    But there are some differences between that and what i need.

    In your example you are using a ArrayReader, and i need to use a JsonReader (I'm using also the server mapping properties) because sometimes i return a list of objects instead of an array of data. (Maybe an ArrayReader works for this too).

    I don't know if this change of reader affects the way to retrieve the selected rows, but in your example you are selecting by Index. I need to be able to select by Value (Or ID more specifically).

    I'll try to write the example as i understand how it should be, i'll post it later.

    Thanks!

    Quote Originally Posted by Daniil View Post
    Hi,

    I confirmed the example you posted doesn't work well.

    Lets start from the example below. Seems it works as you need.

    Example
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        protected void Load(object sender, DirectEventArgs e)
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[] 
                { 
                    new object[] { "test1", "test2", "test3" },
                    new object[] { "test4", "test5", "test6" },
                    new object[] { "test7", "test8", "test9" },
                };
            store.DataBind();
        }
    
        protected void Select(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
    
            selModel.SelectedRows.Clear();
            selModel.SelectedRows.Add(new SelectedRow(0));
            selModel.SelectedRows.Add(new SelectedRow(2));
            selModel.UpdateSelection();
        }
    
        protected void GetSelected(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
            StringBuilder rows = new StringBuilder();
            foreach (SelectedRow row in selModel.SelectedRows)
            {
                rows.Append(String.Format("Index: {0}; RecordID: {1}<br/>", row.RowIndex, row.RecordID));
            }
            X.Msg.Alert("Selected", rows.ToString()).Show();
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            <ext:Button runat="server" Text="Load" OnDirectClick="Load" />
            <ext:Button runat="server" Text="Select some" OnDirectClick="Select" />
            <ext:Button runat="server" Text="Get selected" OnDirectClick="GetSelected" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store runat="server">
                        <Reader>
                            <ext:ArrayReader>
                                <Fields>
                                    <ext:RecordField Name="test1" />
                                    <ext:RecordField Name="test2" />
                                    <ext:RecordField Name="test3" />
                                </Fields>
                            </ext:ArrayReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="Test1" DataIndex="test1" />
                        <ext:Column Header="Test2" DataIndex="test2" />
                        <ext:Column Header="Test3" DataIndex="test3" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel runat="server" />
                </SelectionModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  4. #4
    Here you are.

    Example
    <%@ Page Language="C#" %>
      
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        class SomeClass
        {
            public string ID { get; set; }
            public string Test { get; set; }
        }
        protected void Load(object sender, DirectEventArgs e)
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[] 
                { 
                    new SomeClass()
                    {
                        ID = "id1",
                        Test = "test1" 
                    },
                    new SomeClass()
                    {
                        ID = "id2",
                        Test = "test2" 
                    },
                    new SomeClass()
                    {
                        ID = "id3",
                        Test = "test3" 
                    }
                };
            store.DataBind();
        }
     
        protected void Select(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
     
            selModel.SelectedRows.Clear();
            selModel.SelectedRows.Add(new SelectedRow("id1"));
            selModel.SelectedRows.Add(new SelectedRow("id3"));
            selModel.UpdateSelection();
        }
     
        protected void GetSelected(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
            StringBuilder rows = new StringBuilder();
            foreach (SelectedRow row in selModel.SelectedRows)
            {
                rows.Append(String.Format("Index: {0}; RecordID: {1}<br/>", row.RowIndex, row.RecordID));
            }
            X.Msg.Alert("Selected", rows.ToString()).Show();
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form runat="server">
            <ext:ResourceManager runat="server" />
            <ext:Button runat="server" Text="Load" OnDirectClick="Load" />
            <ext:Button runat="server" Text="Select some" OnDirectClick="Select" />
            <ext:Button runat="server" Text="Get selected" OnDirectClick="GetSelected" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store runat="server">
                        <Reader>
                            <ext:JsonReader IDProperty="ID">
                                <Fields>
                                    <ext:RecordField Name="id" Mapping="ID"  />
                                    <ext:RecordField Name="test" Mapping="Test"  />
                                </Fields>
                            </ext:JsonReader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel runat="server">
                    <Columns>
                        <ext:Column Header="ID" DataIndex="id" />
                        <ext:Column Header="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                    <ext:RowSelectionModel runat="server" />
                </SelectionModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  5. #5
    Hi Daniil, sorry for the late response.

    Your example worked great, but i missed a point. I'm using checkboxes, but if the grid will use checkboxes or not depends on several conditions, so it can't be "hardcoded" in the markup...

    So I add the corresponding selection model at the page load. That seems to clear the selected values from the selection model. Is there anyway to switch from one selection model to other?

    This is my test that is failing:
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        class SomeClass
        {
            public string ID { get; set; }
            public string Test { get; set; }
        }
        void Page_Load(object sender, EventArgs e)
        {
            Configure();
            LoadData();
            
        }
        bool useCheckboxes = true;
        protected void Configure()
        {
            if (useCheckboxes)
            {
                GridPanel1.SelectionModel.Add(new CheckboxSelectionModel());
            }
            else
            {
                GridPanel1.SelectionModel.Add(new RowSelectionModel());
            }
            Store store = this.GridPanel1.GetStore();
            JsonReader reader = new JsonReader();
            reader.IDProperty = "ID";
            reader.Fields.Add(new RecordField("id") { Mapping = "ID" });
            reader.Fields.Add(new RecordField("test") { Mapping = "Test" });
            store.Reader.Add(reader);
        }
        protected void LoadData()
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[] 
                { 
                    new SomeClass()
                    {
                        ID = "id1",
                        Test = "test1" 
                    },
                    new SomeClass()
                    {
                        ID = "id2",
                        Test = "test2" 
                    },
                    new SomeClass()
                    {
                        ID = "id3",
                        Test = "test3" 
                    }
                };
            store.DataBind();
        }
        protected void Load(object sender, DirectEventArgs e)
        {
            LoadData();
        }
      
        protected void Select(object sender, DirectEventArgs e)
        {
            X.Msg.Alert("Already Selected", GetSelectedids().Count>0 ? GetSelectedids().Aggregate((next,prev)=>prev + ", " + next) : "").Show();
            
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
      
            selModel.SelectedRows.Clear();
            selModel.SelectedRows.Add(new SelectedRow("id1"));
            selModel.SelectedRows.Add(new SelectedRow("id3"));
            selModel.UpdateSelection();
        }
      
        protected void GetSelected(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
            StringBuilder rows = new StringBuilder();
            foreach (SelectedRow row in selModel.SelectedRows)
            {
                rows.Append(String.Format("Index: {0}; RecordID: {1}<br/>", row.RowIndex, row.RecordID));
            }
            X.Msg.Alert("Selected", rows.ToString()).Show();
        }
    
        protected List<string> GetSelectedids()
        {
            return (this.GridPanel1.GetSelectionModel() as RowSelectionModel).SelectedRows.Select(row => row.RecordID).ToList();
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            <ext:Button ID="Button1" runat="server" Text="Load" OnDirectClick="Load" />
            <ext:Button ID="Button2" runat="server" Text="Select some" OnDirectClick="Select" />
            <ext:Button ID="Button3" runat="server" Text="Get selected" OnDirectClick="GetSelected" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store ID="Store1" runat="server">
                        <Reader>
    <%--                        <ext:JsonReader IDProperty="ID">
                                <Fields>
                                    <ext:RecordField Name="id" Mapping="ID"  />
                                    <ext:RecordField Name="test" Mapping="Test"  />
                                </Fields>
                            </ext:JsonReader>--%>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column Header="ID" DataIndex="id" />
                        <ext:Column Header="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                </SelectionModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  6. #6
    Quote Originally Posted by tlfdesarrollo View Post
    So I add the corresponding selection model at the page load. That seems to clear the selected values from the selection model. Is there anyway to switch from one selection model to other?
    I can't see where you really switch a selection model. I mean I can't see where you change the "useCheckboxes" variable in your code.

    Respectively, I can't reproduce this:
    That seems to clear the selected values from the selection model.
    Also the example throws an exception when I click on the buttons. I've fixed it this way:
    void Page_Init(object sender, EventArgs e)
    {
        Configure();
    }
    
    void Page_Load(object sender, EventArgs e)
    {
        LoadData();
    }
    Seems we have considered it in another thread.

    Anyways, there is no functionality to switch a selection model - to achieve that you should re-render a GridPanel.

    But please clarify do you need to switch a selection model during a DirectEvent?
  7. #7

    SOLVED!

    I can't see where you really switch a selection model. I mean I can't see where you change the "useCheckboxes" variable in your code.
    The "useCheckboxes" was an example, actually its a function that checks for the user permissions to do many things, like editing multiple rows at the same time.

    Respectively, I can't reproduce this:
    That seems to clear the selected values from the selection model.
    Well... actually in the way that you fixed the exception ended up fixing my problem with the selection model

    When i "configure" my grid in the Page_Init i have no problem and works as expected. But if i put the "configure" inside the page load it clears the selected values.
    Also the example throws an exception when I click on the buttons. I've fixed it this way:
    I don't know why my example was throwing exceptions (i couldn't reproduce that) but you solved!.

    Summary:
    To setup the selection model in the grid, set it up in the Page_init

    :D
    This is the working code:
    <%@ Page Language="C#" %>
     
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <script runat="server">
        class SomeClass
        {
            public string ID { get; set; }
            public string Test { get; set; }
        }
        void Page_Init(object sender, EventArgs e)
        {
            Configure();
        }
    
        void Page_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        protected void Configure()
        {
            if (UserCanChangeData())
            {
                GridPanel1.SelectionModel.Add(new CheckboxSelectionModel());
            }
            else
            {
                GridPanel1.SelectionModel.Add(new RowSelectionModel());
            }
            Store store = this.GridPanel1.GetStore();
            JsonReader reader = new JsonReader();
            reader.IDProperty = "ID";
            reader.Fields.Add(new RecordField("id") { Mapping = "ID" });
            reader.Fields.Add(new RecordField("test") { Mapping = "Test" });
            store.Reader.Add(reader);
        }
        protected bool UserCanChangeData()
        {
            //here we check permissions and other stuff
            return false;
        }
        protected void LoadData()
        {
            Store store = this.GridPanel1.GetStore();
            store.DataSource = new object[]
                {
                    new SomeClass()
                    {
                        ID = "id1",
                        Test = "test1"
                    },
                    new SomeClass()
                    {
                        ID = "id2",
                        Test = "test2"
                    },
                    new SomeClass()
                    {
                        ID = "id3",
                        Test = "test3"
                    }
                };
            store.DataBind();
        }
        protected void Load(object sender, DirectEventArgs e)
        {
            LoadData();
        }
       
        protected void Select(object sender, DirectEventArgs e)
        {
            X.Msg.Alert("Already Selected", GetSelectedids().Count>0 ? GetSelectedids().Aggregate((next,prev)=>prev + ", " + next) : "").Show();
             
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
       
            selModel.SelectedRows.Clear();
            selModel.SelectedRows.Add(new SelectedRow("id1"));
            selModel.SelectedRows.Add(new SelectedRow("id3"));
            selModel.UpdateSelection();
        }
       
        protected void GetSelected(object sender, DirectEventArgs e)
        {
            RowSelectionModel selModel = this.GridPanel1.GetSelectionModel() as RowSelectionModel;
            StringBuilder rows = new StringBuilder();
            foreach (SelectedRow row in selModel.SelectedRows)
            {
                rows.Append(String.Format("Index: {0}; RecordID: {1}<br/>", row.RowIndex, row.RecordID));
            }
            X.Msg.Alert("Selected", rows.ToString()).Show();
        }
     
        protected List<string> GetSelectedids()
        {
            return (this.GridPanel1.GetSelectionModel() as RowSelectionModel).SelectedRows.Select(row => row.RecordID).ToList();
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Ext.NET Example</title>
    </head>
    <body>
        <form id="Form1" runat="server">
            <ext:ResourceManager ID="ResourceManager1" runat="server" />
            <ext:Button ID="Button1" runat="server" Text="Load" OnDirectClick="Load" />
            <ext:Button ID="Button2" runat="server" Text="Select some" OnDirectClick="Select" />
            <ext:Button ID="Button3" runat="server" Text="Get selected" OnDirectClick="GetSelected" />
            <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
                <Store>
                    <ext:Store ID="Store1" runat="server">
                        <Reader>
                        </Reader>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column Header="ID" DataIndex="id" />
                        <ext:Column Header="Test" DataIndex="test" />
                    </Columns>
                </ColumnModel>
                <SelectionModel>
                </SelectionModel>
            </ext:GridPanel>
        </form>
    </body>
    </html>
  8. #8
    Yes, a row selection requires a Store's Reader to be configured within Page_Init (generally, before Page_Load) to correctly manage selected records.

Similar Threads

  1. Replies: 4
    Last Post: Feb 28, 2013, 8:45 PM
  2. [CLOSED] Multi-combo not selecting values after formpanel loads
    By jlosi in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: May 11, 2012, 6:33 PM
  3. Replies: 2
    Last Post: Mar 15, 2012, 6:04 AM
  4. Selecting multiple values in Multiselect
    By masudcseku in forum 1.x Help
    Replies: 1
    Last Post: Nov 23, 2011, 7:26 AM
  5. [CLOSED] # Selecting TreePanel Nodes based on Store Values
    By webppl in forum 1.x Legacy Premium Help
    Replies: 4
    Last Post: Apr 01, 2011, 1:12 PM

Posting Permissions