利用datagrid编辑数据

datagrip与IDEA集成的datagrip的使用 熟悉datagrip与IDEA集成的datagrip的使用,对之前学习的数据库的知识进行复习和总结。在之前学习的时候,一些概念和操作现在都感到很陌生。在这里系统性的总结一下。 阅读详情

<form runat="server">

  <ASP:DataGrid id="MyDataGrid" runat="server"
       CellPadding = "2"
       EditItemStyle-BackColor="yellow"
       DataKeyField="ISBN"//后面可以使用DataKeys集合的行索引来获取该行的ISBN栏的值
       OnEditCommand="DoItemEdit"//Edit事件处理
       OnUpdateCommand="DoItemUpdate"//Update事件
       OnCancelCommand="DoItemCancel"//Cancel事件
       AutoGenerateColumns="False">

    <Columns>

      <ASP:BoundColumn DataField="ISBN" HeaderText="ISBN" ReadOnly="True" />//isbn栏(显示文本)

      <ASP:TemplateColumn HeaderText="Title">//模版列
        <ItemTemplate>
          <ASP:Label Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' runat="server" />
        </ItemTemplate>
        <EditItemTemplate>//EditItemIndex指向行的栏将显示此模版
          <ASP:TextBox id="txtTitle" Size="60"
               Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' runat="server" />
        </EditItemTemplate>
      </ASP:TemplateColumn>

      <ASP:BoundColumn DataField="PublicationDate" HeaderText="Published" />//Published文本栏

      <ASP:EditCommandColumn
           EditText="Edit"
           CancelText="Cancel"
           UpdateText="Update" />//编辑栏(显示为链接形式)

    </Columns>

  </ASP:DataGrid>

</form>

脚本:
<script language="C#" runat="server">

 void Page_Load(Object sender, EventArgs e)
 {
  if (!Page.IsPostBack)
   BindDataGrid();  // create data set and bind to grid control
 }

 
 void DoItemEdit(Object objSource, DataGridCommandEventArgs objArgs)
 {
  lblSQL.Text = "";  // clear text from label that shows SQL statement

  // set the EditItemIndex property of the grid to this item's index
               //设置EditItemIndex属性为用户所电击的行标
  MyDataGrid.EditItemIndex = objArgs.Item.ItemIndex;
  BindDataGrid();  // bind the data and display it
 }


 void DoItemUpdate(Object objSource, DataGridCommandEventArgs objArgs)
 {
  // get a reference to the title and publication date text boxes
                //objArgs.Item为激发事件的控件所在行的引用,FindControl则寻找id为txtTitle的textbox
  TextBox objTitleCtrl = (TextBox)objArgs.Item.FindControl("txtTitle");
                   //取出激发事件的控件所在行第三个单元中第一个控件(因为该Published栏无ID
                   //故不能使用findcontrol方法来查找)
  TextBox objPubDateCtrl = (TextBox)objArgs.Item.Cells[2].Controls[0];

  // create a suitable SQL statement and execute it
  string strSQL = "UPDATE Booklist SET Title='" + objTitleCtrl.Text + "', "
     + "PublicationDate='" + objPubDateCtrl.Text + "' "
     + "WHERE ISBN='" + MyDataGrid.DataKeys[objArgs.Item.ItemIndex] + "'";
  ExecuteSQLStatement(strSQL);//数据库更新操作

  // set EditItemIndex property of grid to -1 to switch out of Edit mode
  MyDataGrid.EditItemIndex = -1;//设为初始值
  BindDataGrid();  // bind the data and display it
 }


 void DoItemCancel(Object objSource, DataGridCommandEventArgs objArgs)
 {
  // set EditItemIndex property of grid to -1 to switch out of Edit mode
  MyDataGrid.EditItemIndex = -1;
  BindDataGrid();  // bind the data and display it
 }


 void ExecuteSQLStatement(string strSQL)
 {
  // this is where the SQL statement would be executed against the
  // original data source. In this example, we're simply displaying
  // the statement in a Label on the page
  lblSQL.Text = "<b>The SQL statement that would be executed is:</b><br />" + strSQL;
 }


 void BindDataGrid()
 {
  // get connection string from ../global/connect-strings.ascx user control
  string strConnect = ctlConnectStrings.OLEDBConnectionString;

  // create a SQL statement to select some rows from the database
  string strSelect = "SELECT * FROM BookList WHERE ISBN LIKE '%18610025%'";

  // create a variable to hold an instance of a DataReader object
  OleDbDataReader objDataReader;

  try
  {
   // create a new Connection object using the connection string
   OleDbConnection objConnect = new OleDbConnection(strConnect);

   // open the connection to the database
   objConnect.Open();

   // create a new Command using the connection object and select statement
   OleDbCommand objCommand = new OleDbCommand(strSelect, objConnect);

   // execute the SQL statement against the command to get the DataReader
   objDataReader = objCommand.ExecuteReader();
  }
  catch (Exception objError)
  {
   // display error details
   outError.InnerHtml = "<b>* Error while accessing data</b>.<br />"
        + objError.Message + "<br />" + objError.Source + "<p />";
   return;  //  and stop execution
  }

  // set the DataSource property and bind the grid
  MyDataGrid.DataSource = objDataReader;
  MyDataGrid.DataBind();
 }

</script>
注:
TextBox objTitleCtrl = (TextBox)objArgs.Item.FindControl("txtTitle");
TextBox objPubDateCtrl = (TextBox)objArgs.Item.Cells[2].Controls[0];
这两条语句而言,后者最适用于当栏是普通的BoundColumn或是自动生成的情况(没有定义ID)--而不适用于利用模版创建的自定义栏(
这就是为什么对Title栏使用FindControl的原因(定义了ID))

EasyUI DataGrid 双击编辑单元格,保存并且后台数据改变 像下图这样的效果 我这里是在外部js实现的datagrid的效果 datagrid里面的列 columns: [[{ field: 'fieId1', title: '展示的文本1', width: '20%' }, { field: 'fieId2’, title: '展示的文本2', width: '80%', editor:... 阅读详情

相关推荐

DataGrid使用心得(调用及连接数据库等等)

在工作中遇到把DataGrid中绑定的后台数据库数据展示给用户时把负数变为0的小问题,现在把它记录下来包括DataGrid的调用/连接数据库进行操作等等,感兴趣的朋友可以了解下,或许本新得对你有所帮助

idea DataGrip 使用图解教程

多种数据库,一个工具!DataGrip提供Windows版本和macOS等,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。点击新建/New> 点击数据源/Data Source> 选择你需要的SQL这里我以MySQL示例!其它SQL都大同小异输入名称用户名和密码第一次连接mysql会报错,提示你缺少驱动,会自动提示你安装点击就会自动帮你安装连接驱动连接之前检查一下MySQL服务是否开启点击测试连接/Test Connection。

狼魂之力 4万+

Android13 CarPowerManagementService onApPowerStateChange流程分析

如下为CarPower上电的流程图:下面我们从代码角度分析:在CPMS的init方法中会调用onApPowerStateChange(CpmsState.WAIT_FOR_VHAL, CarPowerManager.STATE_WAIT_FOR_VHAL); 设置ApPowerState为STATE_WAIT_FOR_VHAL: 在onApPowerStateChange中调用PowerHandler 的handlePowerStateChange方法: 在handlePowerStateChang

liuning1985622的博客 925

Intellij Idea的数据库工具 DataGrip

可以直接在数据表上修改数据,改完了,记得点一下DB(后面的箭头会变绿)提交,或者直接用 ctrl+enter 提交。可以在左边的选项中,选择用 Insert Sql,Update Sql,也可以选择导出 excel。注意,此处界面只会展示10条插入的sql,如果想要完整的sql,可以把提示的sql文件中去查找。将鼠标放在数据表上,右键,选择 Export Data,可以导出数据表数据。将鼠标放在数据表的列上,右键,可以看到数据表的菜单,包括各种快捷键。还可以选择 导出sql,这也是非常实用的一个功能。

Cyms,BgXmSfXtsj !!!! Battle Each Moment !!!! 7420

从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点)

本文详细介绍了如何使用海康VisionMaster完成首个字符识别项目,涵盖从环境搭建、图像预处理到系统集成的完整流程。特别分享了Blob分析配置、字符识别优化等实战技巧,帮助开发者避开常见陷阱,快速掌握VisionMaster的基本操作,提升工业自动化场景下的字符识别效率。

weixin_29313423的博客 664

研究生如何快速发CVPR

研究生如何快速发CVPR,找到科研方向

python_vb的博客 785

Idea居然还有比Navicat、Datagrid工具还好用、还快的插件,效率又可提升一倍了

花了两个月终于开发出一款比Navicat、Datagrid工具还好用、还快的Idea插件,支持Mysql、Redis ;自动识别项目中数据源,再也不用手动配置了,等等还有更多便捷功能,太香辣~

3576

C#与YOLOv8工业缺陷检测实战:从算法到PLC集成的工程化落地

目标检测作为计算机视觉的核心任务,其原理是通过深度学习模型在图像中定位并识别物体。这项技术的关键价值在于将AI的感知能力转化为实际生产力,尤其在工业自动化领域,它能实现高效、精准的视觉检测。在工业缺陷检测这一典型应用场景中,稳定性和实时性是核心挑战。本文聚焦于如何将YOLOv8这一先进的目标检测模型,与C#上位机开发及工业相机硬件深度集成,构建一个能够7x24小时稳定运行的智能检测系统。文章深入探讨了从模型训练、ONNX部署,到与PLC通信联调的完整工程化路径,并针对工业环境中常见的稳定性、性能及调试问题提

weixin_33508411的博客 236

IDEA集成的DataGrip使用教程

IDEA集成的DataGrip使用教程

yelitoudu的博客 6776

华为OD机试 - 压缩日志查询(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某设备需要记录每分钟检测到的指标值。为了节约存储空间,将连续相同指标值的记录合并。压缩之前:202411231000,11 202411231001,11 202411231002,12 202411231003,12 202411231004,

学Java,找哪吒 1878

在移动固态上安装ubuntu系统,重启后卡住报错:blk_update_request: I/O error, dev sda, sector ... op 0x0 (READ)如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1796

市委组织部考核项目——利用EasyUi中可编辑的DataGrid控件对多行数据进行编辑并提交

市委组织部考核项目中需要录入原始数据,拿开发区的数据录入举例说明,见下图,需要给查询出的单位录入定量成绩和定性成绩,开始使用弹出框的形式逐条进行编辑,后来考虑如果每一条都需要弹出一次弹出框,每一条都需要一次保存的话,用户可能会不方便,后来发现了easyui中有这么一个好东西,用在这里非常合适——Cell Editing in DataGrid  ????查询出的结果图

陈金荣 1万+

【实战项目开发技术分享】ROS1.0、ROS 2.0和CyberRT开源通信框架对比

随着机器人和自动驾驶技术的飞速发展,开源通信框架在机器人、自动驾驶行业扮演着重要的角色。ROS1.0是一个广泛应用于机器人领域的开源框架,ROS 2.0是其改进版本,而CyberRT是Baidu Apollo自动驾驶平台的通信框架。ROS和ROS 2.0都注重灵活性和共享性,适用于各种机器人应用。CyberRT则专注于实时性和高性能,适用于自动驾驶等对实时性要求较高的场景。选择适合的框架取决于具体应用需求和开发者的偏好。

xiewf的博客 2万+

experssionhandle数据源,在datagrid中利用checkbox显示并编辑boolean类型数据

从blog.org的我的原博客中迁入发表时间:2007-10-8 17:21:08经过艰苦的探索,今天下午还是做出来了,贴出相关代码环境为expressionhandle名为ehperson,是person类的全部实例 ,即express表达式person.allinstances1.aspx文件   " autogeneratecolumns="False" datakeyfie

程序员与注册会计师 759

8.Python基础语法(五)续【光说不练假把式,上题】

Python基础语法(二) 有关于Python循环语句的几道实操,让大家理解知识点更深更透彻~

孤寒者的博客 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[borland eco 技术]experssionhandle数据源,在datagrid中利用checkbox显示并编辑boolean类型数据

经过艰苦的探索,今天下午还是做出来了,贴出相关代码环境为expressionhandle名为ehperson,是person类的全部实例 ,即express表达式person.allinstances1.aspx文件   " autogeneratecolumns="False" datakeyfield="ExternalId">                       

wangyunyong0905的专栏 494

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[VB.NET]利用vb.net创建一个完全可编辑的DataGrid,从而实现操作Access数据库进行增,删,改的功能,前提是不用任何其他的Button

利用vb.net创建一个完全可编辑的DataGrid,从而实现操作Access数据库进行增,删,改的功能,前提是不用任何其他的Button利用vb.net创建一个完全可编辑的DataGrid,从而实现操作Access数据库进行增,删,改的功能,前提是不用任何其他的Button____________________________________________________________

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 971

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Datagrid popup as itemEditor(翻译转载)弹出式的数据表编辑器的实现

导读:   This isn’t as difficult as some may think. Basically your itemRenderer opens up a popup. When the renderer creates the popup, it sets an “opener” property on the popup pointing back to “this

The Way To Great 1221

利用DataGrid编辑、修改、删除记录

下面的这个例子提供了利用DataGrid编辑、修改、删除记录的方法,数据库字段名称和类型如下。数据库aa中表 people:People.sqlif exists (select * from dbo.sysobjects where id = object_id(N[dbo].[People]) and OBJECTPROPERTY(id, NIsUserTable) = 1)

萝卜青菜 1041

EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理

  EasyUi中的DataGrid提供前台编辑的相关函数。 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid中设置编辑单元格,获取编辑单元格,编辑单元格的onchange事件处理,通过当前光标所在编辑单元格获取所在行。 1. 设置编辑单元格   在列定义中增加editor属性,参数为

肥基姆的博客 1万+

利用datagrid编辑

<br />if exists (select * from dbo.sysobjects where <br />id = object_id(N''[dbo].[People]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)<br />drop table [dbo].[People]<br />GO<br /><br />CREATE TABLE [dbo].[People] (<br />[pkID] [int] IDENTITY (1, 1) NO

dan_2010的专栏 343

datagrid 编辑排序功能的实现

先放置一个隐藏的textbox,   并设置两个变量标记一下:private bool inteditmode=false;  private bool intupdatemode=false;...........................  //数据排序  private void dataGrid1_MouseUp(object sender, System.Win

成长记录笔记 831

简单实现对flex dataGrid一列在某些行可编辑,在另一些行不可编辑

Flex的dataGrid控件本身具备指定某列可编辑的功能,但在实际需求中往往要求对整列单元格并不全部可编辑。Flex dataGrid自身并未提供这样的接口,但是我们可以通过和双向绑定来简单实现这一过程。下面代码展示了对小王的年龄可编辑,对小李的年龄不可编辑,同时通过ok键来反馈小李编辑后的年龄。 DataGridWithSomeEdit.mxml: <mx:DataGrid xmlns

指尖思维 3347

如何在DataGrid控件中实现编辑、删除、分类以及分页操作

如何在DataGrid控件中实现编辑、删除、分类以及分页操作www.chinacs.net  2001-9-13  中文C#技术站 文章出处:http://www.c-sharpcorner.com/asp/Code/northwindLC.asp前言:这篇文章主要介绍如何在DataGrid控件中实现编辑、删除、分类以及分页操作。为了实现我们的意图,我们使用SqlServer2000自

jhmjhm的专栏 897

WPF之 DataGrid数据绑定

DataGrid控件是显示数据的控件,从一个对象集合获取信息并在具有行和单元格的网格中显示信息。每行和一个单独的对象相对应,并且每列和该对象中的一个属性相对应。 DataGrid控件添加了许多在WPF中处理数据所需要的技能。其基于列的模型提供了显著的格式化灵活性,其选择模型允许选择一行,多行或一些单元格的组合,其编辑支持非常强大,可以使用DataGrid控件作为简单数据和复杂数据的统一数...

weixin_33910759的博客 443
上一篇: Datalist选择和编辑数据
下一篇: Window.Open详解
AllenTing
博客等级 码龄22年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值