试图在GridView中找到两个列值之间的差异

时间:2015-05-11 11:12:29

标签: c# asp.net gridview

我试图找到网格中两列之间的差异并将其显示在第三列上。但是,我收到以下错误:

  

输入字符串的格式不正确。

到目前为止,这是我的代码:

<asp:TemplateField HeaderText="Issued Quantity"SortExpression="Issued_Quantity">
   <ItemTemplate>
      <asp:Label ID="txtIssued_Quantity" runat="server" Text='<%# ProcessMyDataItem(Eval("Issued_Quantity")) %>'></asp:Label>
   </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Returned Quantity" SortExpression="Return_Quantity">
   <ItemTemplate>
      <asp:Label ID="txtReturn_Quantity" runat="server" Text='<%# ProcessMyDataItem(Eval("Return_Quantity")) %>'></asp:Label>
   </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Actual Used Quantity" SortExpression="txtQty1">
   <ItemTemplate>
      <asp:TextBox ID="txtQty" runat="server" Enabled="False" Height="27px" Text='<%# Convert.ToDouble(Eval("Issued_Quantity")) - Convert.ToDouble(Eval("Return_Quantity"))%>' Width="73px"></asp:TextBox>
   </ItemTemplate>
</asp:TemplateField>

1 个答案:

答案 0 :(得分:0)

尝试使用此..

计算数据库查询本身的实际数量。

Select Issued_Quantity, Return_Quantity, convert(decimal(4,2),Issued_Quantity) - convert(decimal(4,2),Return_Quantity) as Actual_Quantity from [YourTable]

然后编辑您的代码,如

<asp:TemplateField HeaderText="Actual Used Quantity" SortExpression="txtQty1">
   <ItemTemplate>
      <asp:TextBox ID="txtQty" runat="server" Enabled="False" Height="27px" Text='<%# ProcessMyDataItem(Eval("Actual_Quantity ")) %>' Width="73px"></asp:TextBox>
   </ItemTemplate>
</asp:TemplateField>

希望这会有所帮助..

注意:十进制(4,2)用于指示目的。您可以根据实际数据更改它们。

另一个观察与这个问题无关但总的来说。不要在px中使用高度。它扰乱了你的用户界面。尽量使用高度%,如20%。它根据屏幕大小保持格式。