リピーター コントロールを使用して、ItemDataBound イベント中に 3 つのアイテムがバインドされているデータを表示します。コードの問題は、リピーターのすべての行に最後のレコードが表示され、既存の値が上書きされることです。これを停止するにはどうすればよいですか? 私はこのようなコードを使用します
.aspx.cs コード
DataSet dsJobCardHistory =new DataSet();
double dcPriceIncl;
double dcPriceExcl;
double dcTax;
protected void Job_History()
{
dsJobCardHistory = objReportManager.Get_JobCard_History(strCustNo, strTranId);
}
protected void repJobCard_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
for (int i = 0; i < dsJobCardHistory.Tables[0].Rows.Count;i++)
{
dcPriceIncl = Convert.ToDouble(dsJobCardHistory.Tables[0].Rows[i][6].ToString());
dcTax = dcPriceIncl * 0.14;
dcPriceExcl = dcPriceIncl - dcTax;
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType==
ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl("lblRepPrice")).Text =
Convert.ToString(dcPriceExcl);
((Label)e.Item.FindControl("lblRepTax")).Text =
Convert.ToString(dcTax);
((Label)e.Item.FindControl("lblRepTotal")).Text =
Convert.ToString(dcPriceIncl);
}
}
}
.aspx コード
<asp:Repeater ID="repJobCard" runat="server" onitemdatabound="repJobCard_ItemDataBound">
<td align="center" width="15%">
<font style="font-size:14px">
<strong>
<asp:Label ID="lblRepPrice" runat="server" Text="">
</asp:Label>
</strong>
</font>
</td>
<td align="center" width="15%">
<font style="font-size:14px">
<strong>
<asp:Label ID="lblRepTax" runat="server" Text="">
</asp:Label>
</strong>
</font>
</td>
<td align="center" width="15%">
<font style="font-size:14px">
<strong>
<asp:Label ID="lblRepTotal" runat="server" Text="">
</asp:Label>
</strong>
</font>
</td>