datalist的用法
DataList 提供相关的编辑模板,但和DataGrid不一样的是,DataList没有编辑按钮。要在DataList中使用编辑功能,可在项模板中增加一个按 钮,Linkbutton和Button都可以。在CommandName中设置为Edit就可以把此按钮和DataList的编辑事件联系起来了。
如:
编辑按钮可以使用CommandName="Edit"
更新按钮可以使用CommandName="Update"
取消按钮可以使用CommandName="Cancel"
删除按钮可以使用CommandName="Delete"
来实现。
-------------------------------------------------------------------------------------------------------------------------
控件设置:
<asp:DataList ID="UserList" DataKeyField="Uid" OnItemCreated="UserList_ItemCreated" OnUpdateCommand="UserList_OnUpdateCommand" OnDeleteCommand="UserList_OnDeleteCommand" runat="server" Width="100%" RepeatColumns="6" OnEditCommand="UserList_OnEditCommand" OnCancelCommand="UserList_OnCancelCommand">
<HeaderTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#E2EEF5" >
<tr>
<td width="17%" height="25" align="center" bgcolor="#E8F0F7">登陆名称</td>
<td width="15%" align="center" bgcolor="#E8F0F7">真实姓名</td>
<td width="17%" align="center" bgcolor="#E8F0F7">所属用户组</td>
<td width="25%" align="center" bgcolor="#E8F0F7">拥有权限</td>
<td width="14%" align="center" bgcolor="#E8F0F7">创建时间</td>
<td width="12%" align="center" bgcolor="#E8F0F7">操作</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td height="25" bgcolor="#FFFFFF"><img src="data:images/FriendICO.gif" width="15" height="15" style="margin-left:5px;" /> [<%#Eval("Uname")%>]<asp:Image ID="StateICO" ImageUrl='<%#GetUserState(Eval("uState").ToString()) %>' width="12" height="12" runat="server" /></td>
<td align="center" bgcolor="#FFFFFF"><%#Eval("Rname")%></td>
<td align="center" bgcolor="#FFFFFF"><%#Eval("UserGroup")%></td>
<td align="center" bgcolor="#FFFFFF"><%#Eval("Purview")%></td>
<td align="center" bgcolor="#FFFFFF"><%#Eval("Ctimes","{0:d}")%></td>
<td align="center" bgcolor="#FFFFFF"><img src="data:images/Edit_ICOS.gif" width="14" height="15" border="0" align="absmiddle" /><asp:LinkButton CommandName="Edit"
ID="Edit_But" ForeColor="#003366" runat="server">编辑</asp:LinkButton> <img src="data:images/DEL_ICOS.gif" width="14" height="15" border="0" align="absmiddle" /><asp:LinkButton CommandName="Delete"
ID="Del_But" ForeColor="#003366" runat="server" >删除</asp:LinkButton></td>
</tr>
</ItemTemplate>
<EditItemTemplate>
<tr>
<td height="25" bgcolor="#E8F0F7"><img src="data:images/FriendICO.gif" width="15" height="15" style="margin-left:5px;" /> <%#Eval("Uname")%><asp:CheckBox ID="User_State" Checked='<%#GetBoxState(Eval("uState").ToString().Trim()) %>' runat="server" Text="启用账户" />
</td>
<td align="center" bgcolor="#E8F0F7"><asp:TextBox ID="User_Rname" runat="server" CssClass="inputX"
Text='<%#Eval("Rname")%>' Width="80px"></asp:TextBox>
</td>
<td align="center" bgcolor="#E8F0F7">
<asp:DropDownList ID="User_Group" runat="server" CssClass="FontBlue12">
<asp:ListItem Value="Guest">来宾组</asp:ListItem>
<asp:ListItem Value="Editor">编辑组</asp:ListItem>
<asp:ListItem Value="System">系统组</asp:ListItem>
</asp:DropDownList>
</td>
<td align="center" bgcolor="#E8F0F7">
<asp:CheckBoxList ID="User_Priv" runat="server" CssClass="FontBlue12"
RepeatDirection="Horizontal">
<asp:ListItem Value="r">读</asp:ListItem>
<asp:ListItem Value="w">写</asp:ListItem>
<asp:ListItem Value="e">编辑</asp:ListItem>
<asp:ListItem Value="d">删除</asp:ListItem>
</asp:CheckBoxList>
</td>
<td align="center" bgcolor="#E8F0F7"><%#Eval("Ctimes","{0:d}")%></td>
<td align="center" bgcolor="#E8F0F7">
<img align="absmiddle" border="0" height="15" src="data:images/Update_ICOS.gif"
width="14" /><asp:LinkButton ID="Update_But" runat="server"
CommandName="Update" ForeColor="#003366">更新</asp:LinkButton> <img align="absmiddle" border="0" height="15" src="data:images/Cancel_ICOS.gif"
width="14" /><asp:LinkButton ID="Cancel_But" runat="server"
CommandName="Cancel" ForeColor="#003366">取消</asp:LinkButton>
</td>
</tr>
</EditItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:DataList>
后台代码:
//取消编辑
protected void UserList_OnCancelCommand(object sender, DataListCommandEventArgs e)
{
this.UserList.EditItemIndex = -1;
GetUserList();
}
//DataList编辑
protected void UserList_OnEditCommand(object sender, DataListCommandEventArgs e)
{
this.UserList.EditItemIndex = e.Item.ItemIndex;
GetUserList();
}
//DataList更新
protected void UserList_OnUpdateCommand(object sender, DataListCommandEventArgs e)
{
string id = this.UserList.DataKeys[e.Item.ItemIndex].ToString(); //使用前需先设置DataList的DataKeyField="Uid"
string Rname = ((TextBox)e.Item.FindControl("User_Rname")).Text.Trim();//取得DataList中ID为"User_Rname"的TextBox中的值
string UserGroup = ((DropDownList)e.Item.FindControl("User_Group")).SelectedValue.Trim();
string UserPurview = "";
for (int i = 0; i < ((CheckBoxList)e.Item.FindControl("User_Priv")).Items.Count; i++)
{
if (((CheckBoxList)e.Item.FindControl("User_Priv")).Items[i].Selected == true)
{
UserPurview += ((CheckBoxList)e.Item.FindControl("User_Priv")).Items[i].Value + ",";
}
}
if (UserPurview != "")
{
UserPurview = UserPurview.Substring(0, UserPurview.Length - 1);
}
int usstate = 0;
if (((CheckBox)e.Item.FindControl("User_State")).Checked == true)
{
usstate = 1;
}
string sql = "update SystemUser set uState =" + usstate + ",UserGroup='" + UserGroup + "',Rname='" + Rname + "',Purview='" + UserPurview + "' where uid=" + id + "";
ConnDB db = new ConnDB();
if (db.EditDatabase(sql))
{
msgBox.Alert("编辑成功!", "SysUser_Admin.aspx");
}
else
{
msgBox.Alert("编辑失败!" + ((CheckBox)e.Item.FindControl("User_State")).ToString());
}
}
//DataList删除对话框
protected void UserList_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lbDelete = (LinkButton)e.Item.FindControl("Del_But"); lbDelete.Attributes.Add("onclick", "return confirm(""确定删除这个用户吗?"");");
}
}
//DataList删除
protected void UserList_OnDeleteCommand(object sender, DataListCommandEventArgs e)
{
string id = this.UserList.DataKeys[e.Item.ItemIndex].ToString(); //使用前需先设置DataList的DataKeyField="Uid"
string sql = "delete from SystemUser where Uid=" + id + "";
ConnDB db = new ConnDB();
if (db.EditDatabase(sql))
{
msgBox.Alert("已删除!", "SysUser_Admin.aspx");
}
else
{
msgBox.Alert("删除失败!", "SysUser_Admin.aspx");
}
GetUserList();
}
//DataList数据绑定
private void DataListDataBind()
{
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["DataBaseCon"].ToString());
SqlDataAdapter da=new SqlDataAdapter("select * from Employees",conn);
DataSet ds=new DataSet();
try
{
da.Fill(ds,"testTable");
dlEditItem.DataSource=ds.Tables["testTable"];
dlEditItem.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
datalist的用法的更多相关文章
- Datalist增删改查——联系人管理
关于Datalist,其实和Repeater差不多,都是存放数据的控件,相比较下,Datalist和Repeater虽然都是用的模板,但是Datalist比之多了Edit模板,也就是编辑栏的模板,事件 ...
- HTML5中新增加的结构元素、网页元素和全局属性
HTML5新增的结构元素(新增的都是块元素,独占一行) 1) header 定义了文档的头部区域 <header> <h1>网站标题<h1> </header ...
- GridView控件 Reapter控件 DataList控件 的区别和用法
ASP.NET三大控件: 1.GridView控件:表格视图控件,可以用来绑定结果集或者视图,用起来比较方便和灵活,三个控件中使用最多的控件 用法--- this.gridview1.DataSour ...
- DataList 用法详解
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList.aspx. ...
- DataList用法总结
设计模版: 页眉<HeaderTemplate> </HeaderTemplate> 页脚<FooterTemplate> </FooterTemplat ...
- ElasticSearch的基本用法与集群搭建
一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...
- 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素
这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找. html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...
- H5 新标签用法及解释
HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...
- sp.net2.0中的新增控件BulletedList的一些高级用法
asp.net2.0新增了一个BulletedList控件,通过它可以以列表形式显示数据,而不必再用Repeater,Datalist等实现相同的效果.今天做程序的时候正好用到了这个控件,就把它的一些 ...
随机推荐
- stage3D之疑问
1.stage3D本身是建立在图形API(如DirectX.Opengl等)之上的一套API,那么在创建stage3D demo时,如何指定使用哪种图形API呢?
- MVP -----个人理解与示例(android例子 实现)
MVP 也就是Model View Presenter模式,是建立一个工程的一种模式. ======================================================== ...
- Educational Codeforces Round 14 D. Swaps in Permutation
题目链接 分析:一些边把各个节点连接成了一颗颗树.因为每棵树上的边可以走任意次,所以不难想出要字典序最大,就是每棵树中数字大的放在树中节点编号比较小的位置. 我用了极为暴力的方法,先dfs每棵树,再用 ...
- js实现继承
js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式1.使用对象冒充实现继承(该种实现 ...
- 【C语言学习】-08 指针
指针
- NSURLCache 和 NSCache 的区别
NSURLCache 和 NSCache 的区别 NSURLCache提供的是URL Request缓存,可以在Memory和Disk上:NSCache提供了HTTP Request外的东西的缓存方式 ...
- Psp个人软件开发软件需求分析及用例分析
一.需求分析 1. 业务需求 1.1 应用背景 开发项目进度计划总是那么不明确,延期经常出现,甚至无法给出一个相对比较明确的延迟时间.这样给市场的推广会带来很大的影响,不确定因素使得应对十分困难. ...
- 隐匿在iOS文件系统中的隐私信息
说明: . 本文仅供安全学习及教学用途,提及的部分技术带有攻击性,请确保合法使用. . “这些都不是我干的,我就负责说出来.” . 图片仅供参考. . 本文所讨论的内容适用于iOS .4环境,其应用程 ...
- 三部曲一(数据结构)-1011-Sorting It All Out
每次加入一个关系都要进行拓扑排序,不过在排序过程中需要判断是否出现多个入度为0的点,如果出现了就说明不能确定大小关系.不论出不出现多个入度为0的点拓扑排序都要进行到最后来判断是否出现环,因为一旦出现环 ...
- unity5.3.4之no android module loaded
参考http://www.cnblogs.com/shenggege/p/5165616.html 最近从unity5.1.3升级到5.3.4的时候,发现有个问题: system.io.file' d ...