GridPanel - Doesn't refresh with new data from code behind

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    [Closed]GridPanel - Doesn't refresh with new data from code behind

    GridPanel doesn't refresh with new data from code behind.

    aspx page code:
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" ShowWarningOnAjaxFailure="false"
            IDMode="Explicit" />
        <div>
            <ext:GridPanel ID="GridPanelVouchers" runat="server" Title="Vouchers List" Margins="0 0 5 5"
                Icon="Money" Region="Center" Frame="true" Height="340">
                <TopBar>
                    <ext:Toolbar ID="ToolbarVouchersStatusCount" runat="server">
                        <Items>
                            <ext:Button ID="btnReload" runat="server" Text="Reload Data" Icon="ArrowRefresh"
                                OnDirectClick="ReloadData">
                            </ext:Button>
                            <ext:ComboBox ID="ddlVoucherStatusUserAccount" runat="server" Name="ddlVoucherStatusUserAccount"
                                DisplayField="FullName" ValueField="UserAccountId" EmptyText="Filter by User..."
                                Width="180" QueryMode="Local" TypeAhead="true" OnDirectSelect="ddlVoucherStatusUserAccount_Select">
                                <Store>
                                    <ext:Store ID="ddlVoucherStatusUserAccountStore" runat="server">
                                        <Model>
                                            <ext:Model ID="ddlVoucherStatusUserAccountModel" runat="server" IDProperty="UserAccountId">
                                                <Fields>
                                                    <ext:ModelField Name="FullName" />
                                                    <ext:ModelField Name="UserAccountId" />
                                                </Fields>
                                            </ext:Model>
                                        </Model>
                                    </ext:Store>
                                </Store>
                                <ListConfig>
                                    <ItemTpl ID="ItemTpl1" runat="server">
                                        <Html>
                                            <div style="color: gray">{FullName}</div>
                                        </Html>
                                    </ItemTpl>
                                </ListConfig>
                            </ext:ComboBox>
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <Store>
                    <ext:Store ID="StoreVouchers" runat="server" Data="<%# GetVouchersStatusAndCount() %>"
                        OnReadData="StoreVouchers_Refresh" PageSize="10">
                        <Model>
                            <ext:Model ID="ModelVouchers" runat="server" IDProperty="VoucherId">
                                <Fields>
                                    <ext:ModelField Name="Voucher_Count" Type="int" />
                                    <ext:ModelField Name="Voucher_Status" Type="String" />
                                    <ext:ModelField Name="Voucher_Price" Type="Float" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ID="Column1" runat="server" DataIndex="Voucher_Count" Text="Voucher Count"
                            Width="150">
                        </ext:Column>
                        <ext:Column ID="Column2" runat="server" DataIndex="Voucher_Status" Text="Voucher Status"
                            Width="150">
                        </ext:Column>
                        <ext:Column ID="Column3" runat="server" DataIndex="Voucher_Price" Text="Price" Width="150">
                            <Renderer Format="UsMoney">
                            </Renderer>
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <Features>
                    <ext:GridFilters ID="GridFilters1" runat="server" Local="true">
                        <Filters>
                            <ext:NumericFilter DataIndex="Voucher_Count" />
                            <ext:StringFilter DataIndex="Voucher_Status" />
                            <ext:NumericFilter DataIndex="Voucher_Price">
                            </ext:NumericFilter>
                        </Filters>
                    </ext:GridFilters>
                </Features>
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" DisplayInfo="true" DisplayMsg="Displaying Vouchers {0} - {1} of {2}">
                        <Items>
                            <ext:Button ID="btnClearFilters" runat="server" Text="Clear Filters" Handler="this.up('grid').filters.clearFilters();" />
                        </Items>
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
        </div>
        </form>
    </body>
    code behind:
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
    
                    if (!IsPostBack && !X.IsAjaxRequest)
                    {
                        ddlVoucherStatusUserAccountStore.DataSource = Users;
                        ddlVoucherStatusUserAccountStore.DataBind();
                        ddlVoucherStatusUserAccountStore.Style.Add("color", "red");
                    }
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            protected void StoreVouchers_Refresh(object sender, StoreReadDataEventArgs e)
            {
                this.StoreVouchers.DataBind();
            }
    
            protected void ReloadData(object sender, DirectEventArgs e)
            {
                //GridPanelVouchers.RemoveAll();
                StoreVouchers.DataSource = GetVouchersStatusAndCount();
                StoreVouchers.DataBind();
                GridPanelVouchers.Refresh();
            }
    
            public void ddlVoucherStatusUserAccount_Select(object sender, DirectEventArgs e)
            {            
                try
                {
                    if (ddlVoucherStatusUserAccount.SelectedItem.Index > -1)
                    {
                        StoreVouchers.DataSource = VoucherData_FilteredForDistributor;
                        StoreVouchers.DataBind();
                    }
                    else
                    {
                        StoreVouchers.DataSource = GetVouchersStatusAndCount();
                        StoreVouchers.DataBind();
                    }
                    GridPanelVouchers.Refresh();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }        
    
            public DataTable GetVouchersStatusAndCount()
            {
                try
                {
                    return VoucherData;
                }
                catch (Exception ex)
                {
                    throw new CustomException(ex, ErrorType.Base);
                }
            }
    
            public DataTable GetUserAccount()
            {
                try
                {
                    return Users;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            private DataTable Users
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("UserAccountId", typeof(int)));
                    dt.Columns.Add(new DataColumn("FullName", typeof(string)));
                    dt.Rows.Add(1, "DistributorUser");
                    return dt;
                }
            }
    
            private DataTable VoucherData
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Voucher_Status", typeof(string)));
                    dt.Columns.Add(new DataColumn("Voucher_Count", typeof(int)));
                    dt.Columns.Add(new DataColumn("Voucher_Price", typeof(decimal)));
                    dt.Rows.Add("Active", 7000, 130000);
                    dt.Rows.Add("Not Active", 80000, 1230000);
                    dt.Rows.Add("Canceled", 50, 300);
                    dt.Rows.Add("Redeemed", 8000, 140000);
                    return dt;
                }
            }
    
            private DataTable VoucherData_FilteredForDistributor
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Voucher_Status", typeof(string)));
                    dt.Columns.Add(new DataColumn("Voucher_Count", typeof(int)));
                    dt.Columns.Add(new DataColumn("Voucher_Price", typeof(decimal)));
                    dt.Rows.Add("Active", 100, 2000);
                    dt.Rows.Add("Not Active", 0, 0);
                    dt.Rows.Add("Canceled", 1, 20);
                    dt.Rows.Add("Redeemed", 50, 1000);
                    return dt;
                }
            }
    Please need help, how to load new data in gridpanel from code behind?
    Last edited by DenisEdde; Jun 27, 2013 at 6:09 PM. Reason: Closed
  2. #2

    [Closed]

    Oh found solution, should bind store on page load, thanks

    Quote Originally Posted by DenisEdde View Post
    GridPanel doesn't refresh with new data from code behind.

    aspx page code:
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" ShowWarningOnAjaxFailure="false"
            IDMode="Explicit" />
        <div>
            <ext:GridPanel ID="GridPanelVouchers" runat="server" Title="Vouchers List" Margins="0 0 5 5"
                Icon="Money" Region="Center" Frame="true" Height="340">
                <TopBar>
                    <ext:Toolbar ID="ToolbarVouchersStatusCount" runat="server">
                        <Items>
                            <ext:Button ID="btnReload" runat="server" Text="Reload Data" Icon="ArrowRefresh"
                                OnDirectClick="ReloadData">
                            </ext:Button>
                            <ext:ComboBox ID="ddlVoucherStatusUserAccount" runat="server" Name="ddlVoucherStatusUserAccount"
                                DisplayField="FullName" ValueField="UserAccountId" EmptyText="Filter by User..."
                                Width="180" QueryMode="Local" TypeAhead="true" OnDirectSelect="ddlVoucherStatusUserAccount_Select">
                                <Store>
                                    <ext:Store ID="ddlVoucherStatusUserAccountStore" runat="server">
                                        <Model>
                                            <ext:Model ID="ddlVoucherStatusUserAccountModel" runat="server" IDProperty="UserAccountId">
                                                <Fields>
                                                    <ext:ModelField Name="FullName" />
                                                    <ext:ModelField Name="UserAccountId" />
                                                </Fields>
                                            </ext:Model>
                                        </Model>
                                    </ext:Store>
                                </Store>
                                <ListConfig>
                                    <ItemTpl ID="ItemTpl1" runat="server">
                                        <Html>
                                            <div style="color: gray">{FullName}</div>
                                        </Html>
                                    </ItemTpl>
                                </ListConfig>
                            </ext:ComboBox>
                        </Items>
                    </ext:Toolbar>
                </TopBar>
                <Store>
                    <ext:Store ID="StoreVouchers" runat="server" Data="<%# GetVouchersStatusAndCount() %>"
                        OnReadData="StoreVouchers_Refresh" PageSize="10">
                        <Model>
                            <ext:Model ID="ModelVouchers" runat="server" IDProperty="VoucherId">
                                <Fields>
                                    <ext:ModelField Name="Voucher_Count" Type="int" />
                                    <ext:ModelField Name="Voucher_Status" Type="String" />
                                    <ext:ModelField Name="Voucher_Price" Type="Float" />
                                </Fields>
                            </ext:Model>
                        </Model>
                    </ext:Store>
                </Store>
                <ColumnModel ID="ColumnModel1" runat="server">
                    <Columns>
                        <ext:Column ID="Column1" runat="server" DataIndex="Voucher_Count" Text="Voucher Count"
                            Width="150">
                        </ext:Column>
                        <ext:Column ID="Column2" runat="server" DataIndex="Voucher_Status" Text="Voucher Status"
                            Width="150">
                        </ext:Column>
                        <ext:Column ID="Column3" runat="server" DataIndex="Voucher_Price" Text="Price" Width="150">
                            <Renderer Format="UsMoney">
                            </Renderer>
                        </ext:Column>
                    </Columns>
                </ColumnModel>
                <Features>
                    <ext:GridFilters ID="GridFilters1" runat="server" Local="true">
                        <Filters>
                            <ext:NumericFilter DataIndex="Voucher_Count" />
                            <ext:StringFilter DataIndex="Voucher_Status" />
                            <ext:NumericFilter DataIndex="Voucher_Price">
                            </ext:NumericFilter>
                        </Filters>
                    </ext:GridFilters>
                </Features>
                <BottomBar>
                    <ext:PagingToolbar ID="PagingToolbar1" runat="server" DisplayInfo="true" DisplayMsg="Displaying Vouchers {0} - {1} of {2}">
                        <Items>
                            <ext:Button ID="btnClearFilters" runat="server" Text="Clear Filters" Handler="this.up('grid').filters.clearFilters();" />
                        </Items>
                    </ext:PagingToolbar>
                </BottomBar>
            </ext:GridPanel>
        </div>
        </form>
    </body>
    code behind:
            protected void Page_Load(object sender, EventArgs e)
            {
                try
                {
    
                    if (!IsPostBack && !X.IsAjaxRequest)
                    {
                        ddlVoucherStatusUserAccountStore.DataSource = Users;
                        ddlVoucherStatusUserAccountStore.DataBind();
                        ddlVoucherStatusUserAccountStore.Style.Add("color", "red");
                    }
    
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            protected void StoreVouchers_Refresh(object sender, StoreReadDataEventArgs e)
            {
                this.StoreVouchers.DataBind();
            }
    
            protected void ReloadData(object sender, DirectEventArgs e)
            {
                //GridPanelVouchers.RemoveAll();
                StoreVouchers.DataSource = GetVouchersStatusAndCount();
                StoreVouchers.DataBind();
                GridPanelVouchers.Refresh();
            }
    
            public void ddlVoucherStatusUserAccount_Select(object sender, DirectEventArgs e)
            {            
                try
                {
                    if (ddlVoucherStatusUserAccount.SelectedItem.Index > -1)
                    {
                        StoreVouchers.DataSource = VoucherData_FilteredForDistributor;
                        StoreVouchers.DataBind();
                    }
                    else
                    {
                        StoreVouchers.DataSource = GetVouchersStatusAndCount();
                        StoreVouchers.DataBind();
                    }
                    GridPanelVouchers.Refresh();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }        
    
            public DataTable GetVouchersStatusAndCount()
            {
                try
                {
                    return VoucherData;
                }
                catch (Exception ex)
                {
                    throw new CustomException(ex, ErrorType.Base);
                }
            }
    
            public DataTable GetUserAccount()
            {
                try
                {
                    return Users;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
            private DataTable Users
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("UserAccountId", typeof(int)));
                    dt.Columns.Add(new DataColumn("FullName", typeof(string)));
                    dt.Rows.Add(1, "DistributorUser");
                    return dt;
                }
            }
    
            private DataTable VoucherData
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Voucher_Status", typeof(string)));
                    dt.Columns.Add(new DataColumn("Voucher_Count", typeof(int)));
                    dt.Columns.Add(new DataColumn("Voucher_Price", typeof(decimal)));
                    dt.Rows.Add("Active", 7000, 130000);
                    dt.Rows.Add("Not Active", 80000, 1230000);
                    dt.Rows.Add("Canceled", 50, 300);
                    dt.Rows.Add("Redeemed", 8000, 140000);
                    return dt;
                }
            }
    
            private DataTable VoucherData_FilteredForDistributor
            {
                get
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add(new DataColumn("Voucher_Status", typeof(string)));
                    dt.Columns.Add(new DataColumn("Voucher_Count", typeof(int)));
                    dt.Columns.Add(new DataColumn("Voucher_Price", typeof(decimal)));
                    dt.Rows.Add("Active", 100, 2000);
                    dt.Rows.Add("Not Active", 0, 0);
                    dt.Rows.Add("Canceled", 1, 20);
                    dt.Rows.Add("Redeemed", 50, 1000);
                    return dt;
                }
            }
    Please need help, how to load new data in gridpanel from code behind?

Similar Threads

  1. Replies: 2
    Last Post: Jul 29, 2012, 12:19 PM
  2. Replies: 2
    Last Post: Feb 08, 2012, 2:56 PM
  3. Refresh GridPanel data on postback event
    By huzzy143 in forum 1.x Help
    Replies: 6
    Last Post: Sep 05, 2011, 7:55 PM
  4. change store data and gridpanel refresh
    By ven in forum 1.x Help
    Replies: 1
    Last Post: Jun 18, 2011, 6:28 AM
  5. Replies: 4
    Last Post: Nov 17, 2008, 8:16 AM

Posting Permissions