CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

怎么在datagrid里实现就地编辑,修改数据呢?

楼主tangny(tangny)2002-10-25 19:17:02 在 .NET技术 / ASP.NET 提问

怎么在datagrid里实现就地编辑,修改数据呢?我想在datagrid里的按删除.编辑按钮后在datagrid里直接修改,保存数据.谢谢! 问题点数:30、回复次数:25Top

1 楼baitianhai(hong)回复于 2002-10-25 19:58:02 得分 0

这种文章好多书上都有的啊,msdn里也有的啊Top

2 楼tangny(tangny)回复于 2002-10-25 20:01:44 得分 0

我的机上查msdn挺麻烦的,可以提示一下吗?Top

3 楼castaway()回复于 2002-10-25 20:05:39 得分 0

在dataGrid里面添加templateColumn,在里面添加editItemTemplate.Top

4 楼tangny(tangny)回复于 2002-10-25 20:54:18 得分 0

这我已经添加,但只有编辑和删除按钮,用那些属性使datagrid在网格中用dropdownlist或者textbox编辑数据呢?Top

5 楼lixigang(真诚)回复于 2002-10-25 22:37:34 得分 0

编辑模板列时将dropdownlist拖到模板列中就可以了Top

6 楼tangny(tangny)回复于 2002-10-25 23:01:26 得分 0

我已拖了,   还有啥设置属性吗?但我运行按编辑按钮还是不行!   请指教Top

7 楼xzygod(急风知劲草)回复于 2002-10-26 03:04:46 得分 20

DataGrid.EditItemIndex   属性,默认是-1,你赋一个你要编辑的item的indexTop

8 楼tangny(tangny)回复于 2002-10-26 08:55:53 得分 0

非常感激你晚上3点多钟来回答我的问题,如果我想编辑多个item那如何呢?Top

9 楼xzygod(急风知劲草)回复于 2002-10-26 13:33:33 得分 0

好像只能同时编辑一个,要不自己写代码控制而不用datagrid提供的功能Top

10 楼tangny(tangny)回复于 2002-10-26 13:35:38 得分 0

我加了这语句,sub   datagrid1_editcomand(sender,e)  
      datagrid1.edititemindex=e.item.itemindex  
    datagrid1.databind  
  end   sub  
  曾经试过行的,按"编辑键"后出现update","cancel"了,datagrid列也出现文本框,后来我设置格式还是怎么的,后来按"编辑键"不出现"update","cancel"了,现怎么也不再出现了,why?why?我新建重新试,还是一样不行.多多指教!非常感激!Top

11 楼xzygod(急风知劲草)回复于 2002-10-26 13:38:52 得分 0

看看是不是事件绑定弄丢了Top

12 楼tangny(tangny)回复于 2002-10-26 13:49:58 得分 0

我现在用了一个最简单的例子来试,pus.authors:  
  建一个webform,拖拉pubs.authors,生成数据集,放一个datagrid,设置datasource,datamember,datakeyid,在属性生成器里添加按钮列"edit","update","cancel",设置编辑列格式,后输入代码:  
       
          Private   Sub   Page_Load(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   MyBase.Load  
                  SqlConnection1.Open()  
                  SqlDataAdapter1.Fill(DataSet11,   "authors")  
                  DataGrid1.DataSource   =   DataSet11.authors  
                  DataGrid1.DataKeyField   =   "au_id"  
                  DataGrid1.DataBind()  
          End   Sub  
   
          Private   Sub   DataGrid1_EditCommand(ByVal   source   As   Object,   ByVal   e   As   System.Web.UI.WebControls.DataGridCommandEventArgs)   Handles   DataGrid1.EditCommand  
                  DataGrid1.EditItemIndex   =   e.Item.ItemIndex  
                  DataGrid1.DataBind()  
          End   Sub  
   
          Private   Sub   DataGrid1_CancelCommand(ByVal   source   As   Object,   ByVal   e   As   System.Web.UI.WebControls.DataGridCommandEventArgs)   Handles   DataGrid1.CancelCommand  
                  DataGrid1.EditItemIndex   =   -1  
                  DataGrid1.DataBind()  
          End   Sub  
  End   Class  
  还是不行,是否漏了哪个步骤呢?Top

13 楼xzygod(急风知劲草)回复于 2002-10-26 13:53:59 得分 0

"Web   Form   Designer   generated   code"区域里面的系统自动生成的代码中的事件绑定是不是没了Top

14 楼tangny(tangny)回复于 2002-10-26 13:57:56 得分 0

那些代码是有,没有贴上而已!   步骤对吗?   按了"edit"后,只是闪一下而已,"update"和"cancel"不出来,   但我曾试过行的,   现搞了两天了还是不行,为何呢?Top

15 楼xzygod(急风知劲草)回复于 2002-10-26 14:02:53 得分 0

单步调试,看看有没有执行到DataGrid1_EditCommandTop

16 楼angel_lee(随风而逝)回复于 2002-10-26 14:03:23 得分 5

你在web   form   designer   gererated   code   区域中属性旁边,有个事件(闪电)状,点击后,加入editcommand,cancelcommand,updatecommand事件,就可以了。Top

17 楼kinglht(爱新觉罗至尊宝)回复于 2002-10-26 14:04:38 得分 5

关联的editCommand,UpdateCommand,CancelCommand丢了,重新关联一下!!Top

18 楼tangny(tangny)回复于 2002-10-26 14:44:13 得分 0

可以把步骤写一下吗?谢谢!Top

19 楼tangny(tangny)回复于 2002-10-26 14:46:06 得分 0

噢,现在新建一个有行了,   究竟为何有时又不行呢?Top

20 楼xzygod(急风知劲草)回复于 2002-10-26 14:53:34 得分 0

你一定是把事件弄丢了  
  Top

21 楼tangny(tangny)回复于 2002-10-26 15:06:04 得分 0

谢谢!Top

22 楼tangny(tangny)回复于 2002-10-26 15:06:53 得分 0

如何把事件加上?Top

23 楼xzygod(急风知劲草)回复于 2002-10-26 15:16:50 得分 0

重新定义事件,然后把Web   Form   Designer   generated   code中事件关联的方法改为原来的方法Top

24 楼tangny(tangny)回复于 2002-10-26 15:53:52 得分 0

问题已解决!谢谢各位!Top

25 楼tingningpower(听宁)回复于 2002-11-02 06:29:16 得分 0

<%@   Import   Namespace="System.Data"   %>  
  <%@   Import   Namespace="System.Data.OleDb"   %>  
  <script   Language="c#"   runat="server">  
      void   Page_Load(object   sender,   EventArgs   e)  
      {  
          string   strConnection,   strSQL;  
          DataSet   objDataSet   =   new   DataSet();  
          OleDbConnection   objConnection   =   null;  
          OleDbDataAdapter   objAdapter   =   null;  
          OleDbCommandBuilder   objBuilder   =   null;  
          //   Set   the   connection   and   query   details  
          strConnection   =   "Provider=Microsoft.Jet.OleDb.4.0;";  
          strConnection   +=   @"Data   Source=\\genfs1\www11\etning\xml\Northwind.mdb";  
          strSQL   =   "SELECT   FirstName,   LastName   FROM   Employees;";  
          objConnection   =   new   OleDbConnection(strConnection);  
          objAdapter   =   new   OleDbDataAdapter(strSQL,   objConnection);  
          objAdapter.Fill(objDataSet,   "Employees");  
          dgNameList1.DataSource   =   objDataSet.Tables["Employees"].DefaultView;  
          dgNameList1.DataBind();  
   
          //   -----------------------------------------------------------------  
          //   Marker   1  
         
          DataTable   objTable;  
          DataRow   objNewRow;  
       
          objTable   =   objDataSet.Tables["Employees"];  
          objNewRow   =   objTable.NewRow();  
          objNewRow["FirstName"]   =   "";  
          objNewRow["LastName"]   =   "";  
          objTable.Rows.Add(objNewRow);  
           
          //   Bind   the   data   grid   to   the   new   data  
          dgNameList2.DataSource   =   objTable.DefaultView;  
          dgNameList2.DataBind();  
   
   
          //   -----------------------------------------------------------------  
          //   Marker   2  
   
          DataRow[]   objRows;  
           
          //   Find   the   row   to   change  
          objRows   =   objTable.Select("FirstName='Margaret'   AND   LastName='Peacock'");  
          objRows[0]["FirstName"]   =   "";  
          objRows[0]["LastName"]   =   "";  
   
          //   Bind   the   data   grid   to   the   new   data  
          dgNameList3.DataSource   =   objTable.DefaultView;  
          dgNameList3.DataBind();  
   
          //   -----------------------------------------------------------------  
          //   Marker   3  
   
          //   The   Rows   collection   is   0   indexed,   so   this   removes   the   sixth   row  
          objTable.Rows[5].Delete();  
           
          //   Bind   the   data   grid   to   the   new   data  
          dgNameList4.DataSource   =   objTable.DefaultView;  
          dgNameList4.DataBind();  
   
   
      }  
  </script>  
  <html>  
    <body>  
      <table   width="100%">  
        <tr>  
          <td>Original   Data</td>  
          <td>Data   with   new   Row</td>  
          <td>Data   with   edited   Row</td>  
          <td>Data   with   deleted   Row</td>  
        </tr>  
        <tr>  
          <td   valign="top"><asp:DataGrid   id="dgNameList1"   runat="server"   /></td>  
          <td   valign="top"><asp:DataGrid   id="dgNameList2"   runat="server"   /></td>  
          <td   valign="top"><asp:DataGrid   id="dgNameList3"   runat="server"   /></td>  
          <td   valign="top"><asp:DataGrid   id="dgNameList4"   runat="server"   /></td>  
        </tr>  
      </table>  
    </body>  
  </html>  
  Top

相关问题

  • 可以在Datagrid中编辑修改数据吗?
  • 使用DataGrid模板进行数据修改但是不出现可编辑框
  • 我修改了datagrid某列编辑框的值,获取之后,存到数据库中的还是原来的,?/
  • DataGrid编辑数据的问题
  • datagrid的有编辑列可以做到修改数据,他还可以做到添加或删除列数据吗?
  • 能否通过程序编辑、修改数据库?
  • 数据窗口中的数据不能修改,编辑,怎么办?
  • DataGrid修改数据问题
  • 急~~~~ 请问为什么我在DataGrid中使用了模版列来做对DataGrid直接进行编辑 为什么他读出来的数据不是我修改的数据而是原来数据库的呢
  • 急~~~~ 请问为什么我在DataGrid中使用了模版列来做对DataGrid直接进行编辑 为什么他读出来的数据不是我修改的数据而是原来数据库的呢

关键词

  • datagrid
  • 数据
  • 修改
  • 属性
  • 编辑
  • 按钮
  • 添加
  • 设置
  • cancel
  • sub

得分解答快速导航

  • 帖主:tangny
  • xzygod
  • angel_lee
  • kinglht

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo