1

定期購読の雑誌に価格を表示すると、私のページに次のように表示されます。

価格 | 購読期間

69.95 | 12

69.95 | 24

24 か月のサブスクリプションは 12 か月の 2 倍 (139.9) を表示するはずですが、これをデータベースに実装しておらず、既に構築されており、他のすべての領域で正常に使用されています。

私はそれを修正するための簡単な式を思いつきましたが、どこに置くべきかわかりません!

表示する内容を定義するために、sqldatasource を使用してboundviews の gridview にテーブルを表示します

これはどこに置き、どのように書くべきですか?

/* sub は、列の部分長を 6 で割り、2 で割った値に等しいため、12=1 または 24=2 */

サブ=サブレングス/6/2

/* 価格=列の価格×サブ、サブ=1 変更なし、サブ=2 の場合は倍増 */

価格=価格*サブ

4

2 に答える 2

1

このようにできます

<asp:GridView runat="server">
<Columns>
   <asp:BoundField DataField="Price" HeaderText="Price" />
   <asp:BoundField DataField="Months" HeaderText="Subscription Length" />

   <asp:TemplateField>
   <ItemTemplate>
      <%# (Convert.ToDecimal(Eval("Price")) * Convert.ToInt32(Eval("Months")) / 12) %>
   </ItemTemplate>
   </asp:TemplateField>
</Columns>
</asp:GridView>

またはこのように

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
   decimal Price = Convert.ToDecimal(e.Row.Cells[0].Text);
   int months = Convert.Int32(e.Row.Cells[1].Text);

   e.Row.Cells[0].Text = Price * (months / 12);
}
于 2012-11-10T05:56:29.233 に答える
0

このタイプの問題では、GridView の onRowDatabound イベントを使用する必要があります。ロジックコードをそのイベントに配置すると、すべてが希望どおりに行われます。正しいことをしていることを確認してください....

于 2012-11-10T03:20:59.100 に答える