前言
VS中的DataList控件可以内嵌按钮,为创建库存列表提供了便利。
DataList内嵌按钮
最近在练习ASP.NET,创建一个购物网站时用到了会话(Session),通过Session将用户购买的商品信息临时存储下来,实现从库存中挑选商品的功能。网页设计如下,左侧DataList列表为库存信息,右侧GridView表格为选中的信息,通过点击DataList列表中的SelectItem按钮将对应商品添加到GridView表格。

DataList表格可以将按钮内嵌,适合在库存数目比较大且库存实时变化的情况下使用。DataList中内嵌的按钮似乎只能通过DataList的事件属性ItemCommand来实现,通过该事件的DataListCommandEventArgs参数可以获得按钮对应的数据,代码如下。
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
int nItemIndex = e.Item.ItemIndex; //获取选中项
this.DataList1.SelectedIndex = nItemIndex;
BindToinventory();
DataTable dt = (DataTable)DataList1.DataSource; //从数据库中获取该项信息
String strID = (dt.Rows[nItemIndex][0]).ToString();
String strTitle = (dt.Rows[nItemIndex][1]).ToString();
String strAuthorLastName = (dt.Rows[nItemIndex][2]).ToString();
String strAuthorFirstName = (dt.Rows[nItemIndex][3]).ToString();
String strTopic = (dt.Rows[nItemIndex][4]).ToString();
String strPublisher = (dt.Rows[nItemIndex][5]).ToString();
DataTable tableSelectedItems;
tableSelectedItems = (DataTable)Session["tableSelectedItems"]; //从Session获取已添加表格
DataRow dr = tableSelectedItems.NewRow(); //添加新行
dr[0] = strID;
dr[1] = strTitle;
dr[2] = strAuthorLastName;
dr[3] = strAuthorFirstName;
dr[4] = strTopic;
dr[5] = strPublisher;
tableSelectedItems.Rows.Add(dr);
Session["tableSelectedItems"] = tableSelectedItems; //将新表格信息存入Session
this.GridView1.DataSource = tableSelectedItems; //刷新表格
this.GridView1.DataBind();
}

5297

被折叠的 条评论
为什么被折叠?



