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;" />&nbsp;[<%#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>&nbsp;<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;" />&nbsp;<%#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>&nbsp;<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的用法的更多相关文章

  1. Datalist增删改查——联系人管理

    关于Datalist,其实和Repeater差不多,都是存放数据的控件,相比较下,Datalist和Repeater虽然都是用的模板,但是Datalist比之多了Edit模板,也就是编辑栏的模板,事件 ...

  2. HTML5中新增加的结构元素、网页元素和全局属性

    HTML5新增的结构元素(新增的都是块元素,独占一行) 1) header 定义了文档的头部区域 <header> <h1>网站标题<h1> </header ...

  3. GridView控件 Reapter控件 DataList控件 的区别和用法

    ASP.NET三大控件: 1.GridView控件:表格视图控件,可以用来绑定结果集或者视图,用起来比较方便和灵活,三个控件中使用最多的控件 用法--- this.gridview1.DataSour ...

  4. DataList 用法详解

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList.aspx. ...

  5. DataList用法总结

    设计模版: 页眉<HeaderTemplate>   </HeaderTemplate> 页脚<FooterTemplate> </FooterTemplat ...

  6. ElasticSearch的基本用法与集群搭建

    一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...

  7. 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素

    这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找.  html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...

  8. H5 新标签用法及解释

    HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...

  9. sp.net2.0中的新增控件BulletedList的一些高级用法

    asp.net2.0新增了一个BulletedList控件,通过它可以以列表形式显示数据,而不必再用Repeater,Datalist等实现相同的效果.今天做程序的时候正好用到了这个控件,就把它的一些 ...

随机推荐

  1. 用hasOwnProperty获取对象自身的属性排除原型链

    今天遇到一个多层级的object. 需要判定每一层级的data下是否有title属性.在下图中展开的data自身其实是没有title的,但由于受到原型链__proto__的影响,在获取parent.d ...

  2. python之map、filter、reduce、lambda函数 转

    python之map.filter.reduce.lambda函数  转  http://www.cnblogs.com/kaituorensheng/p/5300340.html 阅读目录 map ...

  3. CentOs6.5下独立安装Nginx篇

    一.检查系统是否安装了Nginx [root@localhost local]# find -name nginx [root@localhost local]# (如果已经安装了nginx就卸载掉原 ...

  4. 上下文菜单项(contextMenu)----长按按钮弹出菜单项

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  5. 微软成立反网络犯罪中心,工作环境如美剧CSI情景

    微软在总部大楼内设立新网络犯罪中心(Cybercrime Center),旨在针对全球恶意软件.僵尸网络以及其他互联网犯罪行为进行实时追踪并予以打击.微软将“网络犯罪中心”设置在雷德蒙德总部大楼,目的 ...

  6. 警惕USB键盘记录器

    最近媒体报道了一种新型的能记录账号.密码输入的“USB键盘记录器”,引发网友关注,该设备看上去和普通U盘没什么区别,将其插入电脑USB接口,然后把键盘线和它连接,该设备就能够自动记录用户在电脑上输入的 ...

  7. oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)

    From :http://www.cnblogs.com/wangyt223/archive/2012/12/11/2812931.html em无法浏览,同时监听起不来.同时他的监听服务还是正常的, ...

  8. Ubuntu-搜狗输入法

    Sougou(搜狗):要换fictx输入法,先删除ibus输入法.搜索sudo apt-get purge ibussudo apt-get autoremove 然后安装fcitx和拼音输入法(要安 ...

  9. 《Java中的单例模式--两种》

    //单例模式:饿汉式和懒汉式 //单例模式 /* 设计模式:解决某一类问题行之有效的解决办法(思想). 单例(Singleton):设计模式: 学习设计模式必须先弄清楚它是解决什么问题的. 单例模式是 ...

  10. SVG 2D入门10 - 滤镜

    滤镜称得上是SVG最强大的功能了,它允许你给图形(图形元素和容器元素)添加各种专业软件中才有的滤镜特效.这样你就很容易在客户端生成和修改图像了.而且滤镜并没有破坏原有文档的结构,所以维护性也很好.   ...