--<%@ Page language="c#" Codebehind="WebForm2.aspx.cs" --AutoEventWireup="false" Inherits="session.WebForm2" %>
--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
--<HTML>
--<HEAD>
<title>WebForm2</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
--<body>
--<form id="Form1" method="post" runat="server">
<TABLE id="Table1" style="WIDTH: 543px; HEIGHT: 40px" cellSpacing="1" cellPadding="1" width="543"
align="center" border="0">
<TR>
<TD align="center"><FONT face="宋体"><asp:datalist id="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="2">
<ItemTemplate>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="300" border="1">
<TR>
<TD align="center" rowSpan="3">
<asp:Image id=ProductImage runat="server" ImageUrl='<%#DataBinder.Eval(Container.DataItem,"Image")%>'>
</asp:Image></TD>
<TD>Title:</TD>
<TD>
<asp:Label id="TitleLabel" runat="server">
<%#DataBinder.Eval(Container.DataItem,"Title")%>
</asp:Label></TD>
</TR>
<TR>
<TD>Price:</TD>
<TD>
<asp:Label id="PriceLabel" runat="server">
<%#DataBinder.Eval(Container.DataItem,"Price")%>
</asp:Label></TD>
</TR>
<TR>
<TD>
<asp:Button id=AddButton runat="server" OnCommand="Add_Command" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Id")+"|"+DataBinder.Eval(Container.DataItem,"Title")+"|"+DataBinder.Eval(Container.DataItem,"Price")%>' CommandName="Add" Text="AddToCart">
</asp:Button></TD>
<TD>
<asp:HyperLink id=DetailLink runat="server" NavigateUrl='<%# "moreinfomyproduct.aspx?id="+DataBinder.Eval(Container.DataItem,"id")%>'>MoreInfo</asp:HyperLink></TD>
</TR>
</TABLE>
</ItemTemplate>
</asp:datalist></FONT></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Caching;
namespace session
{
/// <summary>
/// WebForm2 的摘要说明。
/// </summary>
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataList DataList1;
static public CacheItemRemovedCallback diablo;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
ArrayList list;
using(ProductSystem diaproductsystem=new ProductSystem())
{
list=diaproductsystem.GetProducts();
}
diablo = new CacheItemRemovedCallback(dia);//移除缓存项的回调方法
DataList1.DataSource=list;
DataList1.DataBind();
Cache.Insert("cachelist",list,null,DateTime.Now.AddSeconds(60),TimeSpan.Zero,CacheItemPriority.Low,diablo);
}
}
public static void dia(string key,object value,CacheItemRemovedReason reason)//回调函数(移除缓存项)
{
if(key=="cachelist")
{
ArrayList list;
using(ProductSystem diaproductsystem=new ProductSystem())
{
list=diaproductsystem.GetProducts();
}
diablo = new CacheItemRemovedCallback(diablo);
DateTime dt=DateTime.Now;
System.Web.HttpContext.Current.Cache.Insert("cachelist",list);
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
protected void Add_Command(object sender,CommandEventArgs e)
{
Cart cart=(Cart)Session["Cart"];
if(cart==null)
{
cart=new Cart();
Session["Cart"]=cart;
}
string arg=e.CommandArgument.ToString();
string[] args=arg.Split('|');
cart.AddItem(int.Parse(args[0]),args[1],decimal.Parse(args[2]));
Response.Redirect("ShoppingCart.aspx");
}
}
}
=======================================
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="$this.TrayAutoArrange" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
</root>
=================================================
--<%@ Page language="c#" Codebehind="WebForm10.aspx.cs" AutoEventWireup="false" Inherits="student1.WebForm10" %>
--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
--<HTML>
--<HEAD>
<title>WebForm10</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<style type="text/css">
BODY { FONT-SIZE: 12px }
</style>
</HEAD>
--<body MS_POSITIONING="GridLayout" topmargin="0">
<form id="Form1" method="post" runat="server">
<div align="center">
<asp:DataGrid id="DataGrid2" runat="server" AutoGenerateColumns="False" CellPadding="0" BackColor="White"
BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC" Width="560px" Height="208px" DataKeyField="code"
GridLines="Horizontal">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<EditItemStyle Font-Size="12px"></EditItemStyle>
<AlternatingItemStyle Font-Size="12px"></AlternatingItemStyle>
<ItemStyle Font-Size="12px" Wrap="False" HorizontalAlign="Center" ForeColor="#003399" VerticalAlign="Middle"
BackColor="White"></ItemStyle>
<HeaderStyle Font-Size="12px" Font-Bold="True" Wrap="False" HorizontalAlign="Center" ForeColor="#CCCCFF"
VerticalAlign="Middle" BackColor="#003399"></HeaderStyle>
<FooterStyle Font-Size="12px" ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="code" HeaderText="学生编号"></asp:BoundColumn>
<asp:BoundColumn DataField="stu_name" HeaderText="学生姓名"></asp:BoundColumn>
<asp:BoundColumn DataField="age" HeaderText="年龄"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"sex") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="DropDownList1" runat="server" Width="80px">
<asp:ListItem Value="男">男</asp:ListItem>
<asp:ListItem Value="女">女</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="班级">
<ItemTemplate>
<FONT face="宋体">
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"classname") %>'>
</asp:Label></FONT>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体">
<asp:DropDownList id=DropDownList2 runat="server" Width="88px" DataTextField="classname" DataValueField="classid" DataSource="<%# GetClass() %>" SelectedValue='<%# DataBinder.Eval(Container.DataItem,"classid") %>' AutoPostBack="true">
</asp:DropDownList></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</div>
</form>
</body>
</HTML>
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace student1
{
/// <summary>
/// WebForm10 的摘要说明。
/// </summary>
public class WebForm10 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid2;
private string strconn=System.Configuration.ConfigurationSettings.AppSettings["strconn"];
protected DataSet GetClass()
{
System.Data.SqlClient.SqlConnection conn=new SqlConnection(strconn);
System.Data.SqlClient.SqlCommand command=new SqlCommand("select * from class",conn);
System.Data.SqlClient.SqlDataAdapter myadapter=new SqlDataAdapter(command);
DataSet ds=new DataSet();
myadapter.Fill(ds);
return ds;
}
private DataSet GetStudent()
{
System.Data.SqlClient.SqlConnection conn=new SqlConnection(strconn);
System.Data.SqlClient.SqlCommand command=new SqlCommand("select s.code,s.stu_name,s.age,s.sex,c.classname,s.classid from student s inner join class c on s.classid=c.classid",conn);
System.Data.SqlClient.SqlDataAdapter myadapter=new SqlDataAdapter(command);
DataSet ds=new DataSet();
myadapter.Fill(ds);
return ds;
}
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
this.DataGrid2.DataSource=this.GetStudent();
this.DataGrid2.DataBind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid2.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_CancelCommand);
this.DataGrid2.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_EditCommand);
this.DataGrid2.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid2_UpdateCommand);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void DataGrid2_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid2.EditItemIndex=e.Item.ItemIndex;
this.DataGrid2.DataSource=this.GetStudent();
this.DataGrid2.DataBind();
}
private void DataGrid2_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid2.EditItemIndex=-1;
this.DataGrid2.DataSource=this.GetStudent();
this.DataGrid2.DataBind();
}
private void DataGrid2_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int i=0;
string key=this.DataGrid2.DataKeys[e.Item.ItemIndex].ToString();
System.Data.SqlClient.SqlConnection conn=new SqlConnection(strconn);
System.Data.SqlClient.SqlCommand command=new SqlCommand("update student set code=@code,stu_name=@name,age=@age,sex=@sex,classid=@classid where code='"+key+"'",conn);
command.Parameters.Add("@code",SqlDbType.VarChar,20);
command.Parameters.Add("@name",SqlDbType.VarChar,20);
command.Parameters.Add("@age",SqlDbType.Int,4);
command.Parameters.Add("@sex",SqlDbType.Char,2);
command.Parameters.Add("@classid",SqlDbType.VarChar,20);
command.Parameters["@code"].Value=((TextBox)e.Item.Cells[i++].Controls[0]).Text;
command.Parameters["@name"].Value=((TextBox)e.Item.Cells[i++].Controls[0]).Text;
command.Parameters["@age"].Value=((TextBox)e.Item.Cells[i++].Controls[0]).Text;
command.Parameters["@sex"].Value=((DropDownList)e.Item.Cells[i++].Controls[1]).SelectedValue;
command.Parameters["@classid"].Value=((DropDownList)e.Item.FindControl("DropDownList2")).SelectedValue;
conn.Open();
command.ExecuteNonQuery();
conn.Close();
this.DataGrid2.EditItemIndex=-1;
this.DataGrid2.DataSource=this.GetStudent();
this.DataGrid2.DataBind();
}
}
}