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

怎么在 DataGrid中实现插入可编辑行?

楼主xinyangt(信仰t)2006-03-02 17:33:57 在 .NET技术 / C# 提问

请问   怎么在datagrid控件中   实现在   两行之间插入一行新   空行   并能让用户在该行增加数据  
       
   
   
    winform   webform   请分别注明 问题点数:20、回复次数:12Top

1 楼xinyangt(信仰t)回复于 2006-03-02 21:30:07 得分 0

由于问题比较急忙 难度也比较大~自己先顶一下~~希望有代码 谢谢Top

2 楼xinyangt(信仰t)回复于 2006-03-03 09:03:15 得分 0

怎么没人啊Top

3 楼califord(远方)回复于 2006-03-03 09:17:56 得分 0

这个不清楚Top

4 楼crazy2005(剣心)回复于 2006-03-03 11:44:58 得分 0

可以通过改变数据源来控制datagrid的行插入。Top

5 楼raulredondo()回复于 2006-03-03 12:16:50 得分 0

操作dataset,insert,   datagrid会自动多一个空行的Top

6 楼hy98521(斯达克)回复于 2006-03-03 12:50:39 得分 0

markTop

7 楼n688com(尘风)回复于 2006-03-03 14:08:33 得分 0

int   x   =   Convert.ToInt16(dataGrid1.CurrentCell.RowNumber);  
  用X获取当前鼠标dataGrid行数   然后INSERT一个空行到DATASET里面   我是这么做的   不过你表里如果有行号   那么就得重新排了Top

8 楼crazy2005(剣心)回复于 2006-03-03 14:58:01 得分 0

HTML  
  <%@   Page   language="c#"   Codebehind="test.aspx.cs"   AutoEventWireup="false"   Inherits="testCsub.test"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <title>test</title>  
  <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
  <meta   name="CODE_LANGUAGE"   Content="C#">  
  <meta   name="vs_defaultClientScript"   content="JavaScript">  
  <meta   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5">  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="Form1"   method="post"   runat="server">  
  <asp:DataGrid   id="DataGrid1"   style="Z-INDEX:   101;   LEFT:   272px;   POSITION:   absolute;   TOP:   208px"  
  runat="server"   AutoGenerateColumns="False">  
  <Columns>  
  <asp:TemplateColumn   HeaderText="ユーザID"   FooterText="ユーザID">  
  <ItemTemplate>  
  <asp:TextBox   id=TextBox1   runat="server"   BorderStyle="None"   Height="100%"   Width="100%"   Text='<%#   DataBinder.Eval(Container.DataItem,   "ID")   %>'   BorderColor="White"   ReadOnly="True">  
  </asp:TextBox>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  <asp:TemplateColumn   HeaderText="名称"   FooterText="名称">  
  <ItemTemplate>  
  <asp:TextBox   id=TextBox2   runat="server"   BorderStyle="None"   Height="100%"   Width="100%"   Text='<%#   DataBinder.Eval(Container.DataItem,   "name")   %>'   BorderColor="White"   ReadOnly="True">  
  </asp:TextBox>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  <asp:TemplateColumn   HeaderText="年歳"   FooterText="年歳">  
  <ItemTemplate>  
  <asp:TextBox   id=TextBox3   runat="server"   BorderStyle="None"   Height="100%"   Width="100%"   Text='<%#   DataBinder.Eval(Container.DataItem,   "age")   %>'   BorderColor="White"   ReadOnly="True">  
  </asp:TextBox>  
  </ItemTemplate>  
  </asp:TemplateColumn>  
  </Columns>  
  </asp:DataGrid>  
  <asp:Button   id="insert"   style="Z-INDEX:   102;   LEFT:   320px;   POSITION:   absolute;   TOP:   112px"   runat="server"  
  Text="insert"></asp:Button>  
  </form>  
  </body>  
  </HTML>Top

9 楼crazy2005(剣心)回复于 2006-03-03 15:00:49 得分 0

using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   testCsub  
  {  
  ///   <summary>  
  ///   test   の概要の説明です。  
  ///   </summary>  
  public   class   test   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.Button   insert;  
  protected   System.Web.UI.WebControls.DataGrid   DataGrid1;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   ページを初期化するユーザー   コードをここに挿入します。  
  //获取数据源  
  DataTable   dtbl   =   new   DataTable();  
  DataRow   row;  
  dtbl.Columns.Add("ID");  
  dtbl.Columns.Add("name");  
  dtbl.Columns.Add("age");  
  for(int   i   =0;i<2;i++)  
  {  
  row   =   dtbl.NewRow();  
  row["ID"]   =   i.ToString("000#");  
  row["name"]   =   "剣心";  
  row["age"]   =   "25";  
  dtbl.Rows.Add(row);  
  }  
  DataGrid1.DataSource   =   dtbl;  
  Session["test"]   =   dtbl;  
  DataGrid1.DataBind();  
  }  
   
  #region   Web   フォーム   デザイナで生成されたコード    
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   この呼び出しは、ASP.NET   Web   フォーム   デザイナで必要です。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   デザイナ   サポートに必要なメソッドです。このメソッドの内容を  
  ///   コード   エディタで変更しないでください。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.DataGrid1.ItemCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);  
  this.DataGrid1.ItemDataBound   +=   new   System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);  
  this.insert.Click   +=   new   System.EventHandler(this.insert_Click);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
  //行插入  
  private   void   insert_Click(object   sender,   System.EventArgs   e)    
  {  
  DataTable   dtbl;  
  DataRow   row;  
          dtbl   =   (DataTable)Session["test"];  
  row   =   dtbl.NewRow();  
  dtbl.Rows.InsertAt(row,1);  
  dtbl.AcceptChanges();  
  DataGrid1.DataSource   =   dtbl;  
  DataGrid1.DataBind();  
  Session.Remove("test");  
  }  
   
  //插入行状态设定  
  private   void   DataGrid1_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)   {  
  TextBox   txt;  
  if   (e.Item.Cells[0].FindControl("textbox1")   ==   null){}else{  
  txt   =   (TextBox)e.Item.Cells[0].FindControl("textbox1");  
  if(txt.Text   ==   "")   {  
   
  txt.ReadOnly   =false;  
  txt   =   (TextBox)e.Item.Cells[0].FindControl("textbox2");  
  txt.ReadOnly   =false;  
  txt   =   (TextBox)e.Item.Cells[0].FindControl("textbox3");  
  txt.ReadOnly   =false;  
  }  
  }  
  }  
  }  
  }Top

10 楼xinyangt(信仰t)回复于 2006-03-03 17:31:27 得分 0

能给点详细的   winform   代码吗?Top

11 楼xinyangt(信仰t)回复于 2006-03-10 13:16:02 得分 0

自己再顶顶啊~~~问题好棘手啊Top

12 楼xinyangt(信仰t)回复于 2006-04-11 10:32:19 得分 0

问题还是没解决Top

相关问题

  • 我想在DATAGRID中插入新的行并将它置于编辑状态,可是没有实现
  • c#中datagrid如何实现删除和插入,更新操作
  • DataGrid怎样实现行插入和行删除???
  • datagrid数据插入
  • 关于DataGrid中实现完全编辑!!
  • 如何实现在文本框中插入一幅图片?就像在OutlookExpress中“编辑邮件”一样?
  • 关于如何实现在文本编辑控件如(memo,richedit)中插入图片?
  • 请问怎样实现向treectrl插入一个节点后,立即可以让用户编辑其文本呢
  • 怎样在Datagrid控件中实现插入一行啊,而不是在最后自动增加一行
  • 1.怎么样实现在DATAGRID里面,合并单元格?2.在某个单元格插入控件

关键词

  • bordercolor
  • readonly
  • white
  • true

得分解答快速导航

  • 帖主:xinyangt

相关链接

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

广告也精彩

反馈

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