使用DataList實現 加入購物車,編輯,刪除,更新,取消功能
****************************Demo.aspx
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server"
oneditcommand="DataList1_EditCommand" onitemcommand="DataList1_ItemCommand"
onupdatecommand="DataList1_UpdateCommand"
ondeletecommand="DataList1_DeleteCommand">
<EditItemTemplate>
<table style="width:100%;">
<tr>
<td class="style1">
姓名</td>
<td>
<asp:TextBox ID="txtname" runat="server" Text='<%# Eval("sname") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
性別</td>
<td>
<asp:TextBox ID="txtsex" runat="server" Text='<%# Eval("sex") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
年齡</td>
<td>
<asp:TextBox ID="txtage" runat="server" Text='<%# Eval("age") %>'></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
<asp:Button ID="update" runat="server" CommandArgument='<%# Eval("sid") %>'
CommandName="update" Text="更新" Width="40px" />
</td>
<td>
<asp:Button ID="Bucancel" runat="server" CommandName="cancel" Text="取消" />
</td>
</tr>
</table>
</EditItemTemplate>
<ItemTemplate>
姓名:<asp:Label ID="Label1" runat="server" Text='<%# Eval("sname") %>'></asp:Label>
<br />
<br />
年齡:<asp:Label ID="Label2" runat="server" Text='<%# Eval("age") %>'></asp:Label>
<br />
<br />
性別:<asp:Label ID="Label3" runat="server" Text='<%# Eval("sex") %>'></asp:Label>
<br />
<br />
<asp:Button ID="btnedit" runat="server" CommandName="edit" Height="21px"
Text="編輯" />
<asp:Button ID="btndelete" runat="server" CommandArgument='<%# Eval("sid") %>'
CommandName="delete" Text="刪除" />
<br />
<br />
<asp:Button ID="Button1" runat="server" CommandArgument='<%# Eval("sid") %>'
CommandName="buy" Text="加入購物車" />
<br />
</ItemTemplate>
</asp:DataList>
</div>
</form>
*****************************
****************************Demo.aspx.cs
namespace DataList
{
public partial class Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack )
{
bindData();
}
}
private void bindData()
{
string sql = "select * from student";
DataTable dt = sqlhelp.Executedatatable(sql);
this.DataList1.DataSource = dt;
this.DataList1.DataBind();
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "buy")
{
Response.Write(e.CommandArgument .ToString ());
}
}
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = e.Item.ItemIndex;
this.bindData();//重新在綁一次
}
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
string name = (e.Item.FindControl("txtname") as TextBox).Text;
string sex = (e.Item.FindControl("txtsex") as TextBox).Text;
string age = (e.Item.FindControl("txtage") as TextBox).Text;
string sql = "update student set
[email protected],[email protected],[email protected] where [email protected]";
SqlParameter[] pms = new SqlParameter[]
{
new SqlParameter ("@name",name ),
new SqlParameter ("@sex",sex ),
new SqlParameter ("@age",age ),
new SqlParameter ("@sid",e.CommandArgument )
};
sqlhelp.ExcuteNonQuery(sql,pms);
}
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
this.DataList1.EditItemIndex = -1;//誰也不編輯了
this.bindData();//再重新繫結一下
}
protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
string sql = "delete from student where [email protected]" ;
SqlParameter pm = new SqlParameter("@sid",e.CommandArgument );
sqlhelp.ExcuteNonQuery(sql,pm);
this.bindData();
}