C# 如何在文本框中绑定gridview以及如何在asp.net中计算总值

C# 如何在文本框中绑定gridview以及如何在asp.net中计算总值,c#,mysql,asp.net,gridview,shopping-cart,C#,Mysql,Asp.net,Gridview,Shopping Cart,我目前正在为购物车项目工作。从数据库检索后,我的程序将显示一个网格视图 当我想用一个文本框和价格的总值从Quantity中检索时,我遇到了一个错误 我尝试使用eval,但出现一个错误,说明服务器标记的格式不正确 有人能帮我吗 提前谢谢 <asp:GridView ID="gv_Cart" runat="server" EmptyDataText="There is nothing in your shopping cart." CssClass="table table-striped t

我目前正在为购物车项目工作。从数据库检索后,我的程序将显示一个网格视图

当我想用一个文本框和价格的总值从Quantity中检索时,我遇到了一个错误

我尝试使用eval,但出现一个错误,说明服务器标记的格式不正确

有人能帮我吗

提前谢谢

<asp:GridView ID="gv_Cart" runat="server" EmptyDataText="There is nothing in your shopping cart." CssClass="table table-striped table-bordered" ShowFooter="True" GridLines="Vertical" CellPadding="4" AutoGenerateColumns="False" >
            <Columns>
                <asp:BoundField  HeaderText="ID" DataField="productID" />  
                <asp:BoundField  HeaderText="Name" DataField="productName" /> 
                <asp:BoundField  HeaderText="Model" DataField="Model" />
                <asp:BoundField  HeaderText="Price (each)" DataFormatString="{0:c}" DataField="Price"/> 
                <asp:TemplateField HeaderText="Quantity">            
                <ItemTemplate>
                    <asp:TextBox ID="PurchaseQuantity" Width="40" runat="server" Text="<%# Eval("Quantity") %>"></asp:TextBox> 
                </ItemTemplate>        
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Item Total">            
                    <ItemTemplate>
                      <% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>
                    </ItemTemplate>        
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Remove Item">            
                    <ItemTemplate>
                        <asp:CheckBox id="Remove" runat="server"></asp:CheckBox>
                    </ItemTemplate>        
                </asp:TemplateField>        
            </Columns>
        </asp:GridView>

下面是隐藏的代码:

        protected void Page_Load(object sender, EventArgs e)
        {
        string a = Session["customer_Username"].ToString();

        List<cart> allCart = new List<cart>();

        allCart = cBLL.getUsername(a);

        gv_Cart.DataSource = allCart;
        gv_Cart.DataBind();
        }
受保护的无效页面加载(对象发送方,事件参数e)
{
字符串a=Session[“customer_Username”]。ToString();
List allCart=新列表();
allCart=cBLL.getUsername(a);
gv_Cart.DataSource=allCart;
gv_Cart.DataBind();
}

标记的格式确实不正确。下面是一个更好的版本:

<%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>

请注意,它只使用了
的一部分,这里没有内部服务器标记。这些标记不应嵌套

更新。对于数量字段,您只需更正报价即可。属性值使用单引号,求值使用双引号:

Text='<%# Eval("Quantity") %>'
Text=''

标记的格式确实不正确。下面是一个更好的版本:

<%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>

请注意,它只使用了
的一部分,这里没有内部服务器标记。这些标记不应嵌套

更新。对于数量字段,您只需更正报价即可。属性值使用单引号,求值使用双引号:

Text='<%# Eval("Quantity") %>'
Text=''

标记的格式确实不正确。下面是一个更好的版本:

<%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>

请注意,它只使用了
的一部分,这里没有内部服务器标记。这些标记不应嵌套

更新。对于数量字段,您只需更正报价即可。属性值使用单引号,求值使用双引号:

Text='<%# Eval("Quantity") %>'
Text=''

标记的格式确实不正确。下面是一个更好的版本:

<%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>

请注意,它只使用了
的一部分,这里没有内部服务器标记。这些标记不应嵌套

更新。对于数量字段,您只需更正报价即可。属性值使用单引号,求值使用双引号:

Text='<%# Eval("Quantity") %>'
Text=''

我不能100%确定您所说的错误在哪里。。但这看起来不对

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>
        </ItemTemplate>        
 </asp:TemplateField>

我想应该是这样的

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <asp:Label id="lblOne" runant="server" text="<% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>"></asp:Label>
        </ItemTemplate>        
 </asp:TemplateField>

我不能100%确定您所说的错误在哪里。。但这看起来不对

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>
        </ItemTemplate>        
 </asp:TemplateField>

我想应该是这样的

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <asp:Label id="lblOne" runant="server" text="<% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>"></asp:Label>
        </ItemTemplate>        
 </asp:TemplateField>

我不能100%确定您所说的错误在哪里。。但这看起来不对

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>
        </ItemTemplate>        
 </asp:TemplateField>

我想应该是这样的

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <asp:Label id="lblOne" runant="server" text="<% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>"></asp:Label>
        </ItemTemplate>        
 </asp:TemplateField>

我不能100%确定您所说的错误在哪里。。但这看起来不对

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>
        </ItemTemplate>        
 </asp:TemplateField>

我想应该是这样的

<asp:TemplateField HeaderText="Item Total">            
        <ItemTemplate>
            <asp:Label id="lblOne" runant="server" text="<% String.Format("{0:c}", ((Convert.ToInt16(<%# Eval("Quantity") %>) * Convert.ToInt16(<%# Eval("price") %>) ))  %>"></asp:Label>
        </ItemTemplate>        
 </asp:TemplateField>

尝试下面的代码

  <asp:TemplateField HeaderText="Item Total">            
    <ItemTemplate>
          <%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>
   </ItemTemplate>        
  </asp:TemplateField>

尝试下面的代码

  <asp:TemplateField HeaderText="Item Total">            
    <ItemTemplate>
          <%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>
   </ItemTemplate>        
  </asp:TemplateField>

尝试下面的代码

  <asp:TemplateField HeaderText="Item Total">            
    <ItemTemplate>
          <%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>
   </ItemTemplate>        
  </asp:TemplateField>

尝试下面的代码

  <asp:TemplateField HeaderText="Item Total">            
    <ItemTemplate>
          <%# String.Format("{0:c}", Convert.ToInt16(Eval("Quantity")) * Convert.ToInt16(Eval("price")) %>
   </ItemTemplate>        
  </asp:TemplateField>


您好,谢谢您的帮助,但我在购买数量上也遇到了一个错误,即标签格式不正确。有什么解决方案吗?嗨,谢谢你的帮助,但我也在购买数量上打了个错误,说标签格式不好。有什么解决方案吗?嗨,谢谢你的帮助,但我也在购买数量上打了个错误,说标签格式不好。有什么解决方案吗?嗨,谢谢你的帮助,但我也在购买数量上打了个错误,说标签格式不好。有什么解决办法吗?