ASP.NET: Как объявить вычисляемое поле в файле aspx, если это возможно? - PullRequest
1 голос
/ 11 ноября 2011

У меня есть GridView с 2 BoundFields следующим образом:

<asp:BoundField DataField="UnitPrice" HeaderText="Unit Price">
        </asp:BoundField>

<asp:BoundField DataField="Quantity" HeaderText="Quantity">
        </asp:BoundField>

Как мне добавить поле «Всего», которое вычисляется путем декларативного умножения двух других полей в GridView?Эти 2 существующих поля взяты из базы данных SQL, и я не могу добавить новые поля в эту базу данных.В некотором смысле, я должен динамически создавать поле Всего.

Если это невозможно, как это сделать программно?Спасибо.

1 Ответ

4 голосов
/ 11 ноября 2011

Простейшим способом было бы добавить свойство к базовому классу:

Decimal Total { get { return UnitPrice*Quantity; } }

Затем вы можете ссылаться на поле Total в BoundField

При изменении базового классаэто не вариант, попробуйте следующее:

<asp:TemplateField>
   <ItemTemplate>
      <asp:Label runat="server" Text='<%# String.Format("{0:c}", ((Decimal)Eval("UnitPrice"))*((int)Eval("Quantity"))) %>' />
   </ItemTemplate>
</asp:TemplateField>

Обратите внимание, что вы хотите убедиться, что приведенные значения для каждого Eval соответствуют вашей структуре данных.

...