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

xinyangt 2006-03-02 05:33:57
请问 怎么在datagrid控件中 实现在 两行之间插入一行新 空行 并能让用户在该行增加数据



winform webform 请分别注明
...全文
263 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyangt 2006-04-11
  • 打赏
  • 举报
回复
问题还是没解决
xinyangt 2006-03-10
  • 打赏
  • 举报
回复
自己再顶顶啊~~~问题好棘手啊
hy98521 2006-03-03
  • 打赏
  • 举报
回复
mark
raulredondo 2006-03-03
  • 打赏
  • 举报
回复
操作dataset,insert, datagrid会自动多一个空行的
crazy2005 2006-03-03
  • 打赏
  • 举报
回复
可以通过改变数据源来控制datagrid的行插入。
califord 2006-03-03
  • 打赏
  • 举报
回复
这个不清楚
xinyangt 2006-03-03
  • 打赏
  • 举报
回复
怎么没人啊
xinyangt 2006-03-03
  • 打赏
  • 举报
回复
能给点详细的 winform 代码吗?
crazy2005 2006-03-03
  • 打赏
  • 举报
回复
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;
}
}
}
}
}
crazy2005 2006-03-03
  • 打赏
  • 举报
回复
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>
n688com 2006-03-03
  • 打赏
  • 举报
回复
int x = Convert.ToInt16(dataGrid1.CurrentCell.RowNumber);
用X获取当前鼠标dataGrid行数 然后INSERT一个空行到DATASET里面 我是这么做的 不过你表里如果有行号 那么就得重新排了
xinyangt 2006-03-02
  • 打赏
  • 举报
回复
由于问题比较急忙 难度也比较大~自己先顶一下~~希望有代码 谢谢
第1章 空 第2章 ASP.NET运模型 21.如何在页面应用javascript脚本-示例1 21.如何在页面应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重定向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误时重定向到自定义错误界面 35.如何在程序读写Web.config文件 37.如何使用CSS文件定义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件时显示提示信息 48.如何在Web应用程序实现快捷键功能(使用脚本实现) 48.如何在Web应用程序实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件选项的双击事件 63.如何动态设置ListBox控件各选项的背景颜色 64.如何在页面动态创建控件 65.如何为HTML服务器控件的事件添加自定义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指定范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自定义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自定义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部分验证控件有效 76.如何实现控件即时验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件控制个别日的内容及显示 84.如何在Calendar Web控件控制用户日期选定 86.如何使用XML控件显示XML文件和进XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧