Jun 27, 2013, 5:15 PM
[Closed]GridPanel - Doesn't refresh with new data from code behind
GridPanel doesn't refresh with new data from code behind.
aspx page code:
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