[CLOSED] CheckboxSelectionModel and RowSelectionModel dynamic create

Page 1 of 2 12 LastLast
  1. #1

    [CLOSED] CheckboxSelectionModel and RowSelectionModel dynamic create

    Hi,

    when i created dynamic gridpanel's selectionmodel or checkboxselectionmodel i have got this error:


    Server Error in '/Rasad' Application.
    --------------------------------------------------------------------------------

    Can't find the property 'AutoLoadParams' in class 'Hidden'
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.InvalidOperationException: Can't find the property 'AutoLoadParams' in class 'Hidden'

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:


    [InvalidOperationException: Can't find the property 'AutoLoadParams' in class 'Hidden']
    Ext.Net.ViewStateProcessor.LoadViewState(Object obj, Object state) +445
    Ext.Net.XControl.LoadViewState(Object state) +298
    System.Web.UI.Control.LoadViewStateRecursive(Objec t savedState) +187
    System.Web.UI.Control.LoadChildViewStateByIndex(Ar rayList childState) +148
    System.Web.UI.Control.LoadViewStateRecursive(Objec t savedState) +225
    System.Web.UI.Control.LoadChildViewStateByIndex(Ar rayList childState) +148
    System.Web.UI.Control.LoadViewStateRecursive(Objec t savedState) +225
    System.Web.UI.Control.LoadChildViewStateByIndex(Ar rayList childState) +148
    System.Web.UI.Control.LoadViewStateRecursive(Objec t savedState) +225
    System.Web.UI.Page.LoadAllState() +312
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +747




    --------------------------------------------------------------------------------
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1
    where is the error?
    Last edited by Daniil; Dec 24, 2010 at 6:42 AM. Reason: [CLOSED]
  2. #2
    Hi,

    Please provide test sample. Do you recreate dynamic selection model on each request?
  3. #3
    hi vladimir,

    i am creating dynamic gridpanel. My page is example test.aspx page. Test.aspx page has got a gridpanel.

    i am adding grid attribute when page load. I am sending grid another generic class. so far not an error.

    i have got error when as follows code add in generic class.

    gp.SelectionModel.Add(new CheckboxSelectionModel { ID = "RowSlctnGrid" });
    if i am adding selection moden in aspx page, not any error.


    yes i am recreate each request.

    sorry my english.:rolleyes:
  4. #4
    Hi,

    It would be best to provide us with a full sample code. Something like the example below. I have tried to create a sample in according to the details that you provided but this works fine.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            GridPanel1.SelectionModel.Add(new CheckboxSelectionModel());
            if (!X.IsAjaxRequest)
            {
                Store store = this.GridPanel1.GetStore();
                store.DataSource = new object[] 
                { 
                    new object[] { "test11", "test12", "test13" },
                    new object[] { "test12", "test22", "test23" },
                    new object[] { "test13", "test32", "test33" }
                };
                store.DataBind();
            }
        }
    </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: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>
        </ext:GridPanel>
        </form>
    </body>
    </html>
  5. #5
    aspx

    <ext:GridPanel ID="grid" runat="server">
                <Store>
                    <ext:Store OnRefreshData="storeRefreshData" OnBeforeStoreChanged="SaveHandler" 
                            OnSubmitData="storeSubmitData" ID="storeRasadGrid"  runat="server"> 
                    </ext:Store>
                </Store>
                <Items>
                    <ext:Hidden ID="hdJson" runat="server">
                    </ext:Hidden>
                </Items>
    </ext:GridPanel>
    code behind aspx.cs

    
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                createGrid();
            } 
        }
    
    private void createGrid()
        {
            getConfig(grid, Session);
        }
    
    private static void getConfig(GridPanel grid,sessionCls session)
        {
            new GenericGrid(grid, "RasadLogConf",session);
        }

    genericGrid cs.

    
    public GenericGrid(GridPanel gp,string procName,System.Web.SessionState.HttpSessionState session)
        {
            string lang = "tr-TR";     
            procGetGridConfigResult conf = DatabaseUtils.retrieveGridConfig(procName, lang);
    
            List<procGetGridColumnConfigResult> listClmnConf = DatabaseUtils.retrieveGridColumnConfig(conf.ID, lang);
    
            setGridConfig(gp,conf);
            setColumnConfig(gp,listClmnConf);
        }
    
    
    private void setGridConfig(GridPanel gp,procGetGridConfigResult gridConf)
        {
            int start=0;
            int limit=10;
            string idProperty = string.Empty;
    
            if (gridConf.HEIGHT != null)
            { gp.Height = (int)gridConf.HEIGHT; }
            else{gp.AutoHeight=true;}
    
            if(gridConf.WIDTH!=null)
            { gp.Width = (int)gridConf.WIDTH; }
            else{gp.AutoWidth=true;}
            
            if(gridConf.GRID_TITLE!=null)
            { gp.Title = gridConf.GRID_TITLE; }
            
            if (gridConf.START != null)
            { start = (int)gridConf.START; }
    
            if (gridConf.LIMIT != null)
            { limit = (int)gridConf.LIMIT; }
    
            if (gridConf.READER_ID_PROPERTY != null)
            { idProperty = gridConf.READER_ID_PROPERTY; }
    
            gp.TopBar.Add(new Toolbar {ID="idTlbr" });
    
            if (gridConf.ADD_BUTTON!=null && (bool)gridConf.ADD_BUTTON)
            {
                gp.TopBar[0].Add(new Button{ID="btnAdd" ,Text="Ekle",Listeners={Click={Handler="#{grid}.insertRecord(0, {Id : '1'}); #{grid}.startEditing(0, 0);" }},
                    Icon=Icon.Add });
            }
            if (gridConf.DELETE_BUTTON != null && (bool)gridConf.DELETE_BUTTON)
            {
                gp.TopBar[0].Add(new Button { ID = "btnDelete", Text = "Sil", Icon = Icon.Delete,
                Listeners={ Click={Handler="#{grid}.deleteSelected(); "}}});
            }
            if (gp.TopBar[0].Items.Count > 0)
            {
    
                gp.TopBar[0].Add(new ToolbarFill());
                gp.TopBar[0].Add(new Button { ID = "btnSbmt", Text = "Kaydet", Listeners = { Click = { Handler = "#{grid}.save();" } } });
            }
    
            IEnumerable<Parameter> paramList = new List<Parameter> { new Parameter { Name = "start", Value = "={"+start+"}" },
                    new Parameter { Name = "limit",Value = "={"+limit+"}" } };
    
            gp.Store[0].AutoLoadParams.AddRange(paramList);
            gp.Store[0].WriteBaseParams.Add(new Ext.Net.Parameter { Name = "paramSelectStoreName", Value = gridConf.SELECT_SP_NAME, Mode = ParameterMode.Value });
            gp.Store[0].WriteBaseParams.Add(new Ext.Net.Parameter { Name = "paramConfigName", Value = gridConf.CONFIGURATION_NAME, Mode = ParameterMode.Value });
            gp.Store[0].Reader.Add(new JsonReader { IDProperty = idProperty /* Root = "Data", TotalProperty = "TotalRecords" Generic Handlerda kullanılmalı */});
            gp.Store[0].Proxy.Add(new PageProxy());        
    
            gp.BottomBar.Add(new PagingToolbar { PageSize = 10 });
           gp.SelectionModel.Add(new CheckboxSelectionModel {ID="test" });
    
        }
  6. #6
    Quote Originally Posted by albayrak View Post
    yes i am recreate each request.
    Hi,

    In according to the code below CheckBoxSelectionModel is not recreated during each request.
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!X.IsAjaxRequest)
        {
            createGrid();
        }
    }
    Because X.IsAjaxRequest is true during DirectEvent.

    So, please try
    protected void Page_Load(object sender, EventArgs e)
    {
        createGrid();
    }
    Last edited by Daniil; Dec 23, 2010 at 2:57 PM. Reason: Minor correction
  7. #7
    same error.

    my aspx.cs

    another methods as follow

        protected void storeRefreshData(object sender, StoreRefreshDataEventArgs e)
        {
            //if (grid.Store[0].Reader.Count==0)
            //{
                getConfig(grid,Session);
            //}
            int start=int.Parse( e.Parameters[0].Value.ToString());
            int limit = int.Parse(e.Parameters[1].Value.ToString());
    
            int? count = 0;
            grid.Store[0].DataSource = DatabaseUtils.retrieveLog(grid.Store[0].WriteBaseParams["paramSelectStoreName"], start, start + limit, ref count);
            this.grid.Store[0].DataBind();
    
            (grid.Store[0].Proxy[0] as PageProxy).Total =(int) count;
        }
    
        private static void getConfig(GridPanel grid,sessionCls session)
        {
            new GenericGrid(grid, "RasadLogConf",session);
        }   
    
        protected void SaveHandler(object sender, BeforeStoreChangedEventArgs e)
        {
            getConfig(grid,Session);
            hdJson.Text = e.DataHandler.JsonData;
            ResourceManager.GetInstance(this.Context).AddScript("grid.getStore().submitData();");
        }
  8. #8
    Quote Originally Posted by albayrak View Post
    aspx

    <ext:GridPanel ID="grid" runat="server">
                <Store>
                    <ext:Store OnRefreshData="storeRefreshData" OnBeforeStoreChanged="SaveHandler" 
                            OnSubmitData="storeSubmitData" ID="storeRasadGrid"  runat="server"> 
                    </ext:Store>
                </Store>
                <Items>
                    <ext:Hidden ID="hdJson" runat="server">
                    </ext:Hidden>
                </Items>
    </ext:GridPanel>
    I just noticed that you use <Items> of GridPanel. Please note that GridPanel doesn't support Items collection. Please define <ext:Hidden> in some place that out of GridPanel. You could place this control on the same level as <ext:ResourceManager>.


    same error.
    Please try to create a grid in page_Init.
    protected void Page_Init(object sender, EventArgs e)
    {
        createGrid();
    }
  9. #9
    ext:hidden object is work in gridpanel when i didn't create dynamic selection model:confused:


    code works as follow


    protected void Page_Init(object sender, EventArgs e) 
    { 
       createGrid(); 
    } 
    
    
     protected void storeRefreshData(object sender, StoreRefreshDataEventArgs e)
        {
            if (grid.Store[0].Reader.Count==0) // this control necessarry or  application got error
            {
                getConfig(grid,Session);
            }
            int start=int.Parse( e.Parameters[0].Value.ToString());
            int limit = int.Parse(e.Parameters[1].Value.ToString());
    
            int? count = 0;
            grid.Store[0].DataSource = DatabaseUtils.retrieveLog(grid.Store[0].WriteBaseParams["paramSelectStoreName"], start, start + limit, ref count);
            this.grid.Store[0].DataBind();
    
            (grid.Store[0].Proxy[0] as PageProxy).Total =(int) count;
        }
    what is the difference pageInit and pageLoad?

    thanks for all answer.
  10. #10
    Quote Originally Posted by albayrak View Post
    ext:hidden object is work in gridpanel when i didn't create dynamic selection model:confused:
    Yes, it can work in some cases but we don't recommend to use GridPanel's <Items> collection. It's not supported and can be broken in the future releases.

    Quote Originally Posted by albayrak View Post
    code works as follow

    protected void Page_Init(object sender, EventArgs e) 
    { 
       createGrid(); 
    } 
    
    
     protected void storeRefreshData(object sender, StoreRefreshDataEventArgs e)
        {
            if (grid.Store[0].Reader.Count==0) // this control necessarry or  application got error
            {
                getConfig(grid,Session);
            }
            int start=int.Parse( e.Parameters[0].Value.ToString());
            int limit = int.Parse(e.Parameters[1].Value.ToString());
    
            int? count = 0;
            grid.Store[0].DataSource =  DatabaseUtils.retrieveLog(grid.Store[0].WriteBaseParams["paramSelectStoreName"],  start, start + limit, ref count);
            this.grid.Store[0].DataBind();
    
            (grid.Store[0].Proxy[0] as PageProxy).Total =(int) count;
        }
    what is the difference pageInit and pageLoad?
    Well, the difference is the order of firing these events in according to page life cycle. As you can know Page_Init is executed before Page_Load. So, some things must be done in Page_Init. I assume it's the following thing in your case:
    gp.Store[0].AutoLoadParams.AddRange(paramList);
    Last edited by Daniil; Dec 24, 2010 at 6:31 AM. Reason: Minor correction
Page 1 of 2 12 LastLast

Similar Threads

  1. Dynamic checking in a CheckboxSelectionModel.
    By abelvn in forum 1.x Help
    Replies: 2
    Last Post: May 24, 2012, 7:58 PM
  2. Replies: 23
    Last Post: Nov 04, 2011, 5:19 PM
  3. [CLOSED] Create a dynamic event for dynamic components.
    By stoque in forum 1.x Legacy Premium Help
    Replies: 10
    Last Post: May 10, 2011, 9:16 PM
  4. [CLOSED] Create dynamic grid from XML
    By Hari_CSC in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Apr 07, 2010, 1:43 PM
  5. How to dynamic create DesktopWindow?
    By iscript in forum 1.x Help
    Replies: 2
    Last Post: Aug 07, 2009, 2:25 AM

Tags for this Thread

Posting Permissions