【问题标题】:How to bind gridview in a textbox and How calculate the total value in asp.net如何在文本框中绑定gridview以及如何计算asp.net中的总值
【发布时间】:2014-09-09 22:00:50
【问题描述】:

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

当我想使用文本框和总价格从 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();
        }

【问题讨论】:

    标签: c# mysql asp.net gridview shopping-cart


    【解决方案1】:

    我不能 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>
    

    【讨论】:

      【解决方案2】:

      试试下面的代码

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

      【讨论】:

        【解决方案3】:

        标签确实没有很好地形成。这是一个更好的版本:

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

        注意它只使用了&lt;% %&gt; 的一部分,这里没有内部服务器标签。这些标签不应该嵌套。

        更新。至于数量字段,您只需要更正您的报价。对属性值使用单引号,对 Eval 使用双引号:

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

        【讨论】:

        • 您好,感谢您的帮助,但我在购买数量上也遇到错误,说标签格式不正确。有什么解决办法吗?
        猜你喜欢
        • 2018-02-07
        • 2018-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多