私はカートプロジェクトに取り組んでおり、Visual Studio 2010をSQL Server Expressで使用しています。グリッドビューを使用して自分のカートテーブルのデータをデータベースに表示しています。私は自分のデータベースに商品テーブルを持っていて、商品テーブルからカートテーブルに商品を挿入します。その後、私はグリッドビューでカートを表示します。私が直面している問題は、私は注文の合計価格を表示するためにカートのアイテムの価格を追加するために私のgridviewから価格の列を使用することはできません。どうやってやるの?次のように 私のASP GridViewのソースコードがあるグリッドビューの列からデータをフェッチし、列に対して算術演算を実行する方法は?
<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>
私の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>
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();
}
}
ようこそ。何イムは、実際に ます。public void calTotal(int型curCol) { 小数点valueColumn = 0このコードを使用しようとしない – ughai