Ich arbeite an einem Cart-Projekt und Visual Studio 2010 mit SQL Server Express verwenden. Ich verwende eine Gridview, um Daten aus meiner Warenkorb-Tabelle in meiner Datenbank anzuzeigen. Ich habe eine Produkttabelle in meiner Datenbank und füge Produkte aus der Produkttabelle in die Warenkorbtabelle ein. Danach zeige ich den Warenkorb in der Gridview an. Das Problem, mit dem ich konfrontiert bin, ist, dass ich die Price-Spalte aus meiner Gridview nicht verwenden kann, um die Preise der Artikel im Einkaufswagen hinzuzufügen, um den Gesamtpreis der Bestellung anzuzeigen. wie kann ich das machen? mein asp gridview Quellcode ist wie folgtWie hole ich Daten aus einer Spalte einer Gridview und führe arithmetische Operationen für die Spalte aus?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" CssClass="table table-condensed" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None"
onselectedindexchanged="GridView1_SelectedIndexChanged"
DataKeyNames="serial_no" onrowdatabound="GridView1_RowDataBound">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField HeaderText="serial_no" InsertVisible="False"
SortExpression="serial_no">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("serial_no") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("serial_no") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name"
SortExpression="Name" ControlStyle-CssClass="cart_menu" >
</asp:BoundField>
<asp:BoundField DataField="Quantity" HeaderText="Quantity"
SortExpression="Quantity" />
<asp:BoundField DataField="Price" HeaderText="Price"
SortExpression="Price" />
<asp:TemplateField HeaderText="Delete" SortExpression="serial_no">
<EditItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("serial_no") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="Delete"
onclick="Button1_Click1" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#FF7800" Font-Bold="True" ForeColor="White" CssClass="cart_menu" />
<HeaderStyle BackColor="#FF7800" Font-Bold="True" ForeColor="White" CssClass="cart_menu" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFFFF" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>
mein SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:cs %>"
ProviderName="<%$ ConnectionStrings:cs.ProviderName %>"
SelectCommand="SELECT cartdemo.serial_no, Product.Name, Product.P_Image, Product.Price, cartdemo.Quantity FROM cartdemo INNER JOIN Product ON cartdemo.ProductID = Product.ProductID WHERE (cartdemo.CID = @cid)"
DeleteCommand="DELETE FROM cartdemo WHERE (serial_no = @sl_no)">
<DeleteParameters>
<asp:Parameter Name="sl_no" />
</DeleteParameters>
<SelectParameters>
<asp:SessionParameter Name="cid" SessionField="ssid" />
</SelectParameters>
</asp:SqlDataSource>
mein C# -Code hinter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partial class cart2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow grd = e.Row;
switch (grd.RowType)
{
case DataControlRowType.DataRow:
{
Button btn = (Button)grd.FindControl("Button1");
if (btn != null)
{
Label lbl_pid = (Label)grd.FindControl("Label1");
btn.CommandArgument = lbl_pid.Text;
}
break;
}
}
calTotal(4);
}
protected void Button1_Click1(object sender, EventArgs e)
{
Button btn = sender as Button;
string id = btn.CommandArgument;
SqlDataSource1.DeleteParameters[0].DefaultValue = id;
SqlDataSource1.Delete();
GridView1.DataBind();
}
public void calTotal(int curCol)
{
decimal valueColumn = 0;
//try
//{
foreach (GridViewRow row in GridView1.Rows)
{
valueColumn = valueColumn + Convert.ToDecimal(row.Cells[curCol].Text);
}
//}
//catch(Exception r)
//{
//}
Label3.Text = "Rs." + valueColumn.ToString();
}
}
Willkommen bei SO. Bitte lesen Sie [Wie fragen] (http://stackoverflow.com/help/how-to-ask) – ughai