电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

利用Session和HashTable制


发布日期:2020/4/11
 
private void DataGrid_ItemCommand(object source SystemWebUIWebControlsDataGridCommandEventArgs e)//假设前面购买命令是一个命令名为buy的LinkButton

{//关键建立和加如购物车

string pid=thisDataGridDataKeys[eItemItemIndex]ToString();//取出宠物编号

if(eCommandName==buy)//如果命令名是 buy说明是购买

{

if(Session[bus]==null)//先就得检查购物车是否存在如果不存在就建立呗

{

SystemCollectionsHashtable ht=new Hashtable();//先建立一个哈希表

htAdd(pid);//哈希表中的两个列一个key一个value 我们就前面放宠物编号后面放购买数量好了预设置为1

Session[bus]=ht;//将哈希表赋值给Session对象

}

else//如果存在的话

{

Hashtable ht=(Hashtable)Session[bus];//使用强制类型转换再将Session[bus]赋值给哈希表对象 ht

if(ht[pid]==null)//如果哈希表中对应的ID没有

{

ht[pid]=;//那就直接给他设为1

}

else//如果已经有对应的ID

{

ht[pid]=(int)ht[pid]+;//那么就把原来的取出来再加上1

}

Session[bus]=ht;//最后再更新Session 对象

}

}

}

而读取的方法更简单了如下:

thisDataListDataSource=(Hashtable)Session[bus];//直接利用哈希表作为数据源

thisDataListDataBind();//绑定一下

更新数量

private void LinkButton_Click(object sender SystemEventArgs e)

{

foreach(DataListItem dl in thisDataListItems)//遍历集合

{

TextBox tb=(TextBox)dlFindControl(TextBox);//找到文本框

int newpid=ConvertToInt(tbTextToString());//查出文本框里面的值

Label label=(Label)dlFindControl(key);//找到装载哈希表key字段的那个控件

string pid=labelTextToString();//把他的值拿出来

Hashtable ht=(Hashtable)Session[bus];//把session[bus]对象赋值给哈希表 ht

int oldpid=(int)ht[pid];//求得原来的数量

if(newpid!=oldpid)//如果文本框里的值不等于原来的数量就用新的更换到哈希表中的值

{

ht[pid]=newpid;

}

Session[bus]=ht;//最后再更新Session 对象

}

}

上一篇:了解Frame、Iframe、Frameset 的区别

下一篇:Repeater和DataList分页