0
私は、ジョブの数とXDAと呼ばれるドキュメントの数を示すGridViewを持っています。第3列のEPODでは、XDAを引いたジョブでこれを計算したいと思います。2つの他の行に基づいてGridViewの行を計算する
のGridView:背後
<asp:GridView runat="server"
id="gvResults"
CssClass="tblResults"
OnItemDataBound="gvResults_OnItemDataBound"
AllowSorting="true"
OnSortCommand="gvResults_Sort"
DataKeyField="ID"
AutoGenerateColumns="false">
<HeaderStyle CssClass="tblResultsHeader" />
<AlternatingRowStyle BackColor="#EEEEEE" />
<Columns>
<asp:BoundField DataField="JobsDelivered" HeaderText="No. Jobs deliv" SortExpression="JobsDelivered"></asp:BoundField>
<asp:BoundField DataField="ePODXDA" HeaderText="ePOD XDA" SortExpression="ePODXDA"></asp:BoundField>
コード:
protected void gvResults_OnItemDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LookupLeagueTable main = (LookupLeagueTable)e.Row.DataItem;
GridView gv = (GridView)sender;
}
}
だから私はこれを使用してみましたが、コードは、foreachの中で立ち往生:
foreach (DataRow row in e.Row.Cells)
{
row["EPOD"] = Convert.ToInt32(row["JobsDelivered"]) - Convert.ToInt32(row["ePODXDA"]);
}
は私もmain.EPOD = main.JobsDelivered - main.ePODXDA;
を試みたが、グリッドはまだグリッドを移植ゼロ
を表示:
List<LookupLeagueTable> main = LookupLeagueTable.SearchCustomerListItems(Company.Current.CompanyID,
SearchStrings,
SearchFields,
DateTypeKey,
FromDate,
ToDate,
SortExpression,
SortDirection);
gvResults.DataSource = main;
gvResults.DataBind();
SearchCustomerListItems
をして、SQL文を実行します:
select
sum(case when (select count(distinct j.ID) from job_new j where jn.ID = j.ID AND j.JobOwnerID = j.DeliverMemberID)>0 then 1 else 0 end) as JobsDelivered,
sum(case when (select count(jds.EPODImage) from job_dockets jds where jds.jobid=jn.id)>0 then 1 else 0 end) as ePODXDA
FROM customer c
LEFT JOIN job_address ja ON c.AccountCode = ja.Code AND c.Company_ID = ja.Company_ID
JOIN AddressType jat ON ja.AddressType = jat.ID and jat.Description = 'Debtor'
LEFT JOIN job_new jn ON ja.JobID = jn.ID
WHERE jn.IsActive = 1
を、あなたはどのように移入んグリッド ? – Mainak
@Mainakコードを表示するために私の質問を編集しました – user123456789