ASP,深度集成,技术实现

{

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)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。

项目、讲解视频**
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-CBVn2kmK-1710832031934)]

最后

我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。

其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。

不断奔跑,你就知道学习的意义所在!

以上进阶BATJ大厂学习资料可以免费分享给大家,需要完整版的朋友,【点这里可以看到全部内容】。

  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值