使用DataList控件的编辑模板

简介: 控件设置:           人员信息                                                                                                           ...

控件设置:

<asp:DataList id="dlEditItem" runat="server" DataKeyField="EmployeeID">
    <HeaderTemplate>
     人员信息
    </HeaderTemplate>
    <FooterTemplate>
     <hr color="red">
    </FooterTemplate>
    <ItemTemplate>
     <asp:Button id="edit" runat="server" Text="编辑" CommandName="edit"></asp:Button>
     <%#DataBinder.Eval(Container.DataItem,"LastName")%>
     <%#DataBinder.Eval(Container.DataItem,"FirstName")%>
    </ItemTemplate>
    <EditItemTemplate>
     <asp:Label Runat="server" ID="lastname">
      <%#DataBinder.Eval(Container.DataItem,"LastName")%>
     </asp:Label>
     <asp:Label Runat="server" ID="FirstName">
      <%#DataBinder.Eval(Container.DataItem,"FirstName")%>
     </asp:Label>
     <asp:TextBox Runat=server ID="Title" Text='<%#DataBinder.Eval(Container.DataItem,"Title")%>'/>
     <asp:TextBox Runat=server ID="titleOfCourtesy" Text='<%#DataBinder.Eval(Container.DataItem,"TitleOfCourtesy")%>'/>
     <asp:Button id="update" runat="server" Text="更新" CommandName="update" />
     <asp:Button id="cancel" runat="server" Text="取消" CommandName="cancel" />
    </EditItemTemplate>
   </asp:DataList>

后台代码:

private void dlEditItem_CancelCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
  {
   //设置DataList控件的编辑项的索引为-1,既取消编辑
   dlEditItem.EditItemIndex=-1;
   //数据绑定
   DataListDataBind();
  }

  private void dlEditItem_EditCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
  {
   //设置DataList控件的编辑项的索引为当前项
   dlEditItem.EditItemIndex=e.Item.ItemIndex;
   //数据绑定
   DataListDataBind();
  }

  private void dlEditItem_UpdateCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
  {
   //取得编辑行的关键字段的值
   int empID=(int)dlEditItem.DataKeys[e.Item.ItemIndex];
   //取得文本框中输入的内容
   TextBox newTitle=(TextBox)e.Item.FindControl("Title");
   TextBox newTitleOfCour=(TextBox)e.Item.FindControl("TitleOfCourtesy");
   string sqlCom="update Employees set Title='"+newTitle.Text+"',TitleOfCourtesy='"+newTitleOfCour.Text+"' where EmployeeID="+empID.ToString();
   //定义数据连接对象,其中数据库连接字符串是在Web.Config文件中定义的
   SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["DataBaseCon"].ToString());
   //定义命令对象
   SqlCommand cmd=new SqlCommand(sqlCom,conn);
   //打开数据连接
   conn.Open();
   try
   {
    //执行SQL命令
    cmd.ExecuteNonQuery();
    //取消编辑
    dlEditItem.EditItemIndex=-1;
    DataListDataBind();
   }
   catch(Exception err)
   {
    //输入异常信息
    Response.Write(err.ToString());
   }
   finally
   {
    //关闭连接对象
    conn.Close();
   }
  }

  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());
   }
  }

目录
相关文章
|
关系型数据库 MySQL 索引
【MySQL 解析】Hash索引和B+树索引对比分析
【1月更文挑战第11天】【MySQL 解析】Hash索引和B+树索引对比分析
|
NoSQL Java 数据库连接
SpringBoot-搭建Mybatis项目
通过本文的学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和Mybatis的Java Web应用程序,提高开发效率。
630 0
|
前端开发 Java 应用服务中间件
JavaWeb项目 jsp页面无法加载样式问题
JavaWeb项目 jsp页面无法加载样式问题
870 0
JavaWeb项目 jsp页面无法加载样式问题
|
监控 大数据 Java
使用Apache Flink进行大数据实时流处理
Apache Flink是开源流处理框架,擅长低延迟、高吞吐量实时数据流处理。本文深入解析Flink的核心概念、架构(包括客户端、作业管理器、任务管理器和数据源/接收器)和事件时间、窗口、状态管理等特性。通过实战代码展示Flink在词频统计中的应用,讨论其实战挑战与优化。Flink作为大数据处理的关键组件,将持续影响实时处理领域。
1861 5
|
10月前
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
12307 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
|
11月前
|
监控 容灾 测试技术
怎么保证后端服务稳定性,怎么做容灾
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、预算和风险承受能力等因素,选择合适的稳定性保障和容灾方案,并不断优化和完善,以适应不断变化的业务环境和技术发展
|
11月前
|
运维 前端开发 JavaScript
前端技术深度探索:从基础到现代的演进
【10月更文挑战第23天】前端技术深度探索:从基础到现代的演进
320 1
|
Java 应用服务中间件 容器
Tomcat报错 严重: A child container failed during start
Tomcat报错 严重: A child container failed during start
385 0
成功解决:Failed to load resource: net::ERR_FILE_NOT_FOUND
这篇文章提供了解决"Failed to load resource: net::ERR_FILE_NOT_FOUND"错误的步骤,通过修改配置文件中的资源路径设置为相对路径"./"来成功运行打包后的项目。
成功解决:Failed to load resource: net::ERR_FILE_NOT_FOUND