default.aspx<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" DataKeyField="petID" DataSourceID="SqlDataSource1" OnItemCommand="DataList1_ItemCommand">
<ItemTemplate>
petID:
<asp:Label ID="petIDLabel" runat="server" Text='<%# Eval("petID") %>'></asp:Label><br />
petTypeID:
<asp:Label ID="petTypeIDLabel" runat="server" Text='<%# Eval("petTypeID") %>'></asp:Label><br />
petName:
<asp:Label ID="petNameLabel" runat="server" Text='<%# Eval("petName") %>'></asp:Label><br />
petPrice:
<asp:Label ID="petPriceLabel" runat="server" Text='<%# Eval("petPrice") %>'></asp:Label><br />
petPhoto:
<asp:Label ID="petPhotoLabel" runat="server" Text='<%# Eval("petPhoto") %>'></asp:Label><br />
petRe:
<asp:Label ID="petReLabel" runat="server" Text='<%# Eval("petRe") %>'></asp:Label><br />
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="buy" Font-Names="隶书">buy</asp:LinkButton></td>
<br />
</ItemTemplate>
</asp:DataList>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" Width="64px">查看购物车</asp:LinkButton></div>
</form>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ShoppingBusConnectionString %>" SelectCommand="SELECT [petID], [petTypeID], [petName], [petPrice], [petPhoto], [petRe] FROM [pet]"></asp:SqlDataSource>
</body>
</html>
default.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{ string pid = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//取出宠物编号
if (e.CommandName == "buy")//如果命令名是 buy,说明是购买
{
if (Session["bus"] == null)//先就得检查购物车是否存在,如果不存在,就建立呗
{
System.Collections.Hashtable ht = new Hashtable();//先建立一个哈希表
ht.Add(pid, 1);//哈希表中的两个列,一个key,一个value ,我们就前面放宠物编号,后面放购买数量好了,预设置为1
Session["bus"] = ht;//将哈希表赋值给Session对象
}
else//如果存在的话
{
Hashtable ht = (Hashtable)Session["bus"];//使用强制类型转换,再将Session["bus"]赋值给哈希表对象 ht
if (ht[pid] == null)//如果哈希表中对应的ID没有,
{
ht[pid] = 1;//那就直接给他设为 1
}
else//如果已经有对应的ID
{
ht[pid] = (int)ht[pid] + 1;//那么就把原来的取出来再加上 1
}
Session["bus"] = ht;//最后再更新Session 对象
}
}
} protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
}default2.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.DataList1.DataSource = (Hashtable)Session["bus"];//直接利用哈希表作为数据源,
this.DataList1.DataBind();//绑定一下
}
}
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server" DataKeyField="petID" DataSourceID="SqlDataSource1" OnItemCommand="DataList1_ItemCommand">
<ItemTemplate>
petID:
<asp:Label ID="petIDLabel" runat="server" Text='<%# Eval("petID") %>'></asp:Label><br />
petTypeID:
<asp:Label ID="petTypeIDLabel" runat="server" Text='<%# Eval("petTypeID") %>'></asp:Label><br />
petName:
<asp:Label ID="petNameLabel" runat="server" Text='<%# Eval("petName") %>'></asp:Label><br />
petPrice:
<asp:Label ID="petPriceLabel" runat="server" Text='<%# Eval("petPrice") %>'></asp:Label><br />
petPhoto:
<asp:Label ID="petPhotoLabel" runat="server" Text='<%# Eval("petPhoto") %>'></asp:Label><br />
petRe:
<asp:Label ID="petReLabel" runat="server" Text='<%# Eval("petRe") %>'></asp:Label><br />
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="buy" Font-Names="隶书">buy</asp:LinkButton></td>
<br />
</ItemTemplate>
</asp:DataList>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click" Width="64px">查看购物车</asp:LinkButton></div>
</form>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ShoppingBusConnectionString %>" SelectCommand="SELECT [petID], [petTypeID], [petName], [petPrice], [petPhoto], [petRe] FROM [pet]"></asp:SqlDataSource>
</body>
</html>
default.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{ string pid = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//取出宠物编号
if (e.CommandName == "buy")//如果命令名是 buy,说明是购买
{
if (Session["bus"] == null)//先就得检查购物车是否存在,如果不存在,就建立呗
{
System.Collections.Hashtable ht = new Hashtable();//先建立一个哈希表
ht.Add(pid, 1);//哈希表中的两个列,一个key,一个value ,我们就前面放宠物编号,后面放购买数量好了,预设置为1
Session["bus"] = ht;//将哈希表赋值给Session对象
}
else//如果存在的话
{
Hashtable ht = (Hashtable)Session["bus"];//使用强制类型转换,再将Session["bus"]赋值给哈希表对象 ht
if (ht[pid] == null)//如果哈希表中对应的ID没有,
{
ht[pid] = 1;//那就直接给他设为 1
}
else//如果已经有对应的ID
{
ht[pid] = (int)ht[pid] + 1;//那么就把原来的取出来再加上 1
}
Session["bus"] = ht;//最后再更新Session 对象
}
}
} protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
}default2.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.DataList1.DataSource = (Hashtable)Session["bus"];//直接利用哈希表作为数据源,
this.DataList1.DataBind();//绑定一下
}
}
解决方案 »
- gridview 更新不执行代码
- 分页后图片不能正常显示
- JS与服务器控件交互的问题
- 【原创】提供一个根据回贴者用户名快速给分的javascript
- ASP.Net GridView模板列有问题!!!!!
- 如何知dataset有多少行
- 怎么让客户端的网页实现label鼠标放上边字体变成其它颜色,或者超级链接。
- 关于水晶报表的客户端的连接数和使用时间问题,刚刚学习水晶报表,看看是否必须需要购买它?请大家明示,感谢了。
- 如何上传图片,并生成缩略图
- webservic可以接受的参数是否可以是Class对象?(结贴率100%,在线等)
- vs2008的代码共享
- 没有可以插入的值。请检查“values”字典是否包含值。 ObjectDataSource中的问题 求助
可没有显示出来。哪位大侠帮忙看看?
System.Collections.Hashtable
最好替换为
System.Collections.Generic.Dictionary<string, int>
<ItemTemplate>
<%# Eval("Key") %> <%# Eval("Value") %>
</ItemTemplate>
</asp:DataList>
string pid = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();//
pid会不会为空,我想删除一条记录,可是点击删除时pid为空
请帮忙一下,老兄。