Originally Posted by
kkp0633
Hi,
You reply this post so fast !!!!
From this example you post, Datatable can be assigned to Datasource directly and my code does the same.
Environment Settings:
My Browser: IE8, Chrome and Firefox
Ext.Net Version:1.2
But GridPanel still display nothing. I post my aspx code as below:
<!-- Aspx Code-->
<ext:store ID ="InventoryQueryStore" runat="server" OnRefreshData="RefreshData" >
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name = "HospitalCode" Type="String" />
<ext:RecordField Name = "MaterialCode" Type="String"/>
<ext:RecordField Name = "MaterialCName" Type="String"/>
<ext:RecordField Name = "MaterialMSpec" Type="String"/>
<ext:RecordField Name = "NowQty" Type="Int"/>
<ext:RecordField Name = "SafeDays" Type="Int"/>
<ext:RecordField Name = "SafeQty" Type="Int"/>
<ext:RecordField Name = "AverageMonthUse" Type="Int"/>
</Fields>
</ext:JsonReader>
</Reader>
</ext:store>
ext:GridPanel ID="inventoryQuery" runat="server" StoreID="InventoryQueryStore" StripeRows="true" Title = "QueryResult"
TrackMouseOver="true" Height="500px" Width="500" AutoExpandColumn="HospitalCode">
<ColumnModel>
<Columns>
<ext:Column ColumnID="HospitalCode" Header="Stockroom" Width="5%" DataIndex="HospitalCode" Align="Center" />
<ext:Column ColumnID="MaterialCode" Header="MaterialCode" Width="15%" DataIndex="MaterialCode" Align="Center" />
<ext:Column ColumnID="MaterialCName" Header="MaterialCName" Width="20%" DataIndex="MaterialCName" Align="Center" />
<ext:Column ColumnID="MaterialMSpec" Header="MaterialMSpec" Width="20%" DataIndex="MaterialMSpec" Align="Center" />
<ext:Column ColumnID="NowQty" Header="NowQty" Width="10%" DataIndex="NowQty" Align="Center"/>
<ext:Column ColumnID="SafeDays" Header="SafeDays" Width="10%" DataIndex="SafeDays" Align="Center" />
<ext:Column ColumnID="SafeQty" Header="SafeQty" Width="10%" DataIndex="SafeQty" Align="Center"/>
<ext:Column ColumnID="AverageMonthUse" Header="AverageMonthUse" Width="10%" DataIndex="AverageMonthUse" Align="Center"/>
</Columns>
</ColumnModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolbar1" runat="server" PageSize="20" StoreID="InventoryQueryStore" />
</BottomBar>
</ext:GridPanel>
Thanks for your reply.
I solved my question asked. I reallize the
data type is the cause that make something wrong.
I change Data Type and test fine!! Code is as below :
private DataTable GenIventoryList()
{
DataTable targettbl = new DataTable();
DataTable sourcetbl = GetInventorytbl();
targettbl.Columns.AddRange(new DataColumn[] {
new DataColumn("StockRoom") {ColumnName="StockRoom", DataType=typeof(string)},
new DataColumn("MaterialCode") {ColumnName="MaterialCode", DataType=typeof(string)},
new DataColumn("MaterialCName") {ColumnName="MaterialCName", DataType=typeof(string)},
new DataColumn("MaterialMSpec") {ColumnName="MaterialMSpec", DataType=typeof(string)},
new DataColumn("StockPresentQty") {ColumnName="StockPresentQty", DataType=typeof(int)},
new DataColumn("SafetyDays") {ColumnName="SafetyDays", DataType=typeof(int)},
new DataColumn("SafetyQty") {ColumnName="SafetyQty", DataType=typeof(int)},
new DataColumn("MonthUsageQty") {ColumnName="MonthUsageQty", DataType=typeof(int)},
new DataColumn("AutoTransQty") {ColumnName="AutoTransQty", DataType=typeof(int)}
}
);
foreach (DataRow row in sourcetbl.Rows)
{
DataRow targetrow = targettbl.NewRow();
targetrow["StockRoom"] = row["StockRoom"].ToString();
targetrow["MaterialCode"] = row["MaterialCode"].ToString();
targetrow["MaterialCName"] = row["MaterialCName"].ToString();
targetrow["MaterialMSpec"] = row["MaterialMSpec"].ToString();
targetrow["StockPresentQty"] = row["StockPresentQty"] is DBNull ? 0 : Convert.ToDecimal(row["StockPresentQty"]);
targetrow["SafetyDays"] = row["SafetyDays"] is DBNull ? 0 : Convert.ToDecimal(row["SafetyDays"]);
targetrow["SafetyQty"] = row["SafetyQty"] is DBNull ? 0 : Convert.ToDecimal(row["SafetyQty"]);
targetrow["MonthUsageQty"] = row["MonthUsageQty"] is DBNull ? 0 : Convert.ToDecimal(row["MonthUsageQty"]);
targetrow["AutoTransQty"] = row["AutoTransQty"] is DBNull ? 0 : Convert.ToDecimal(row["AutoTransQty"]);
targettbl.Rows.Add(targetrow);
}
return targettbl;
}
PS. Some Columns are different from original post, but all I want to demo is the algorithm, not detail. I don't know this is good method or not.
Anyway, I solve the question....Orz...
IF YOU HAVE BETTER SOLUTION, PLEASE LET ME KNOW. YHANK YOU VERY ... VERY MUCH