Webform 内置对象2(Session、Application)、Repeater的Command操作
内置对象:
1、Session:跟Cookies一样用来存储用户数据,但保存位置不同,保存在服务器内存上
每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的
Session没有持久的,保存20min
重点:Session不要滥用,也不要不用,滥用可能会造成服务器内容溢出,不用会造成资源浪费,因为内存中的数据提取及交互是最快的
赋值:Session["key"] = 值;
取值:string a = Session["key"];
清除: Session["key"]=null;
2、Application:
pplication["key"] 是所有的用户获取这个key里面的值都是一样的
没有保存周期,它会一直保存着
通常在什么地方使用,版本号
赋值:Application["key"]=值;
取值:Application.Get("key");
ViewState
Repeater的Command操作:
- ItemCommand事件 —— 在Repeater中所有能触发事件的控件,都会来触发这一个事件
- CommandName —— 判断点击的是什么按钮,e.CommandName
- CommandArgument —— 触发事件所传递过来的主键值数据,放在这里面界面值绑定时要用 单引号 e.
- ItemCreated - 项模板中将HTML代码生成完毕时执行一遍此事件
- ItemDataBound - 项模板将数据绑定后执行一遍此事件
例子:以数据展示为例
<ItemTemplate> <tr class="tr_Item" style="<%#Eval("Blue") %>" > <td><%#Eval("UserName") %></td> <td><%#Eval("Password") %></td> <td><%#Eval("NickName") %></td> <td><%#Eval("SexName") %></td> <td><%#Eval("birthdayn" )%></td> <td><%#Eval("Age" )%></td> <td><%#Eval("NationName") %></td> <td><asp:Button ID="Button1" runat="server" Text="删除" CommandName="delete" CommandArgument='<%#Eval("UserName") %>'/> <asp:Button ID="Button2" runat="server" Text="修改" CommandName="xiugai" CommandName="delete" CommandArgument='<%#Eval("UserName") %>' /> </td> </tr> </ItemTemplate>
后台代码:
if (e.CommandName == "delete")//删除按钮 { new UserDA().delete(e.CommandArgument.ToString()); Repeater1.DataSource = new UserDA().select(); Repeater1.DataBind(); } if (e.CommandName == "xiugai") { new UserDA().select(e.CommandArgument.ToString()); Repeater1.DataSource = new UserDA().select(); Repeater1.DataBind(); }