ASP(1),怒斩腾讯和阿里的Offer

foreach **(**object item in ht.Keys)

{

string id = item.ToString();

int num = int.Parse(ht[item].ToString());

string sql = “selectbook_name,price from book_info where book_id=’” + id + “’”;

conn = new SqlConnection**(connstring);**

cmd = new SqlCommand**(sql, conn);**

conn.Open();

sdr =cmd.ExecuteReader();

if (sdr.HasRows)

{

sdr.Read();

DataRow row = dt.NewRow();

row[“id”] = id;

row[“Num”] = num;

row[“name”] = sdr.GetString(0);

row[“price”**] =**float.Parse(sdr[1].ToString());

row[“total”**] =num*(**float.Parse(sdr[1].ToString()));

dt.Rows.Add(row);

}

sdr.Close();

conn.Close();

}

GridView1.DataSource = dt.DefaultView;

GridView1.DataBind();

}

}

D、这时可以看到用户购买的商品,但不能修改数量,也不能删除。

E、添加修改数量,删除商品功能,在aspx页面中定义GridView中的各列:

<asp:GridView ID=“GridView1” runat=“server” AutoGenerateColumns=“False”>

<Columns>

<asp:BoundField DataField=“id” HeaderText=“ID” />

<asp:BoundField DataField=“name” HeaderText=“名称” />

<asp:BoundField DataField=“price”  HeaderText=“价格” />

asp:TemplateField\

<ItemTemplate>

<asp:TextBox runat=“server” ID=“textbox1” Text=’<%# Eval(“Num”) %>’

ontextchanged=“textbox1_TextChanged” AutoPostBack=“True” ></asp:TextBox>

</ItemTemplate>

</asp:TemplateField>

<asp:BoundField DataField=“total” HeaderText=“总计” />

asp:TemplateField\

<ItemTemplate>

<asp:Button runat=“server” ID=“button1” CommandArgument=’<%# Eval(“id”) %>’

Text=“删除” οnclick=“button1_Click” />

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

F、为GridView中的文本框添加TextChanged事件:

protected void **textbox1_TextChanged(**object sender, EventArgs e)

{

Hashtable ht =(Hashtable)Session[“shopcar”];

if (ht == null**)** return**;**

for **(**int i = 0; i < GridView1.Rows.Count;i++)

{

string id =GridView1.Rows[i].Cells[0].Text.ToString();

Response.Write(id);

string num = ((TextBox)GridView1.Rows[i].FindControl(“textbox1”)).Text;

Response.Write("    “+num+”
");

ht[id] = num;

}

Session[“shopcar”] = ht;

Bind();

}

G、为按钮添加单击事件:

protected void **button1_Click(**object sender, EventArgs e)

{

string id = ((Button)sender).CommandArgument;

Hashtable ht = (Hashtable)Session[“shopcar”];

if (ht == null**)** return**;**

ht.Remove(id);

Bind();

}

购物车代码:showcart.aspx.cs

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;

using System.Data.SqlClient;

public partial class shopcart : System.Web.UI.Page

{

Hashtable ht;

DataTable dt;

string connstr = “Data Source=.\SQLEXPRESS;AttachDbFilename=F:\大三课程\ASP.Net程序设计\实验\实验7要求与素材\test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”;

SqlConnection conn;

SqlCommand cmd;

SqlDataReader sdr;

protected void Page_Load(object sender, EventArgs e)

{

dt = new DataTable();

DataColumn col = new DataColumn();

col.ColumnName = “id”;

col.DataType = System.Type.GetType(“System.String”);

dt.Columns.Add(col);

col = new DataColumn();

col.ColumnName = “name”;

col.DataType = System.Type.GetType(“System.String”);

dt.Columns.Add(col);

col = new DataColumn();

col.ColumnName = “Num”;

col.DataType = System.Type.GetType(“System.Int32”);

dt.Columns.Add(col);

col = new DataColumn();

col.ColumnName = “price”;

col.DataType = System.Type.GetType(“System.Single”);

dt.Columns.Add(col);

col = new DataColumn();

col.ColumnName = “Total”;

col.DataType = System.Type.GetType(“System.Single”);

dt.Columns.Add(col);

if (!IsPostBack)

{

Bind();

}

}

public void Bind()

{

if (Session[“shopcar”] == null)

{

Response.Write(“”);

}

else

{

ht = (Hashtable)Session[“shopcar”];

foreach (object item in ht.Keys)

{

string id = item.ToString();

int num = int.Parse((ht[item].ToString()));

string sql = “select book_name,price from book_info where book_id=’” + id + “’”;

conn = new SqlConnection(connstr);

cmd = new SqlCommand(sql, conn);

conn.Open();

sdr = cmd.ExecuteReader();

if (sdr.HasRows)

{

sdr.Read();

DataRow row = dt.NewRow();

row[“id”] = id;

row[“Num”] = num;

row[“name”] = sdr.GetString(0);

row[“price”] = float.Parse(sdr[1].ToString());

row[“total”] = num * (float.Parse(sdr[1].ToString()));

dt.Rows.Add(row);

}

sdr.Close();

conn.Close();

}

}

GridView1.DataSource = dt.DefaultView;

GridView1.DataBind();

}

protected void textbox1_TextChanged(
object sender, EventArgs e)

{

{

sdr.Read();

DataRow row = dt.NewRow();

row[“id”] = id;

row[“Num”] = num;

row[“name”] = sdr.GetString(0);

row[“price”] = float.Parse(sdr[1].ToString());

row[“total”] = num * (float.Parse(sdr[1].ToString()));

dt.Rows.Add(row);

}

sdr.Close();

conn.Close();

}

}

GridView1.DataSource = dt.DefaultView;

GridView1.DataBind();

}

protected void textbox1_TextChanged([外链图片转存中…(img-FmUzgsjG-1641798764000)]
object sender, EventArgs e)

{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值