怎样一次编辑datagrid的所有行数据

by1945 2008-07-14 10:51:27
如题,想一次性编辑所有数据,然后保存,请教下具体怎么做,谢谢!
datagrid里面两个字段,一个是id,只读的,一个是jl字段,textbox属性;
我是直接从数据库里面读取数据绑定到datagrid里面,现在想对显示出来的数据进行编辑后,统一保存。
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
locoasta 2008-07-14
  • 打赏
  • 举报
回复
定制了
在datagrid 要编辑的项目放一个lable和一个textbox 当点编辑的时候 lable全部隐藏 textbox 显示出来
点保存的时候循环获取textbox 的值 保存到数据库
by1945 2008-07-14
  • 打赏
  • 举报
回复
参照了你的源码,自己改了下,如下:
private void Button1_Click(object sender, System.EventArgs e)
{
Open();
SqlTransaction myTrans = connection.BeginTransaction();
SqlCommand cmd = connection.CreateCommand();
cmd.Transaction = myTrans;
try
{
foreach (DataGridItem gvr in this.DataGrid1.Items)
{
//sql = "update a set jl='" + ((TextBox)(gvr.FindControl("Label1"))).Text + "' where id = '" + ((Label)(gvr.FindControl("Label2"))).Text + "'";
//SqlCommand cmd = new SqlCommand(sql, connection);
//cmd.ExecuteNonQuery();
cmd.CommandText = "update a set jl='" + ((TextBox)(gvr.FindControl("jl"))).Text + "' where id = '" + ((Label)(gvr.FindControl("Label2"))).Text + "'";
cmd.ExecuteNonQuery();
}
myTrans.Commit();
}
catch
{
myTrans.Rollback();
}
finally
{
Close();
}

}
locoasta 2008-07-14
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataList ID="DataList1" runat="server" CellPadding="4" ForeColor="#333333" OnItemDataBound="DataList1_ItemDataBound">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<ItemTemplate>
SID:
<asp:Label ID="SIDLabel" runat="server" Text='<%# Eval("SID") %>'></asp:Label><br />
Code:
<asp:Label ID="CodeLabel" runat="server" Text='<%# Eval("Code") %>'></asp:Label>
<asp:TextBox ID="Codetxt" runat="server" Text='<%# Eval("Code") %>'></asp:TextBox><br />
userid:
<asp:Label ID="useridLabel" runat="server" Text='<%# Eval("userid") %>'></asp:Label>
<asp:TextBox ID="useridtxt" runat="server" Text='<%# Eval("userid") %>'></asp:TextBox><br />
Role_id:
<asp:Label ID="Role_idLabel" runat="server" Text='<%# Eval("Role_id") %>'></asp:Label><br />
<asp:TextBox ID="Role_idtxt" runat="server" Text='<%# Eval("Role_id") %>'></asp:TextBox>
</ItemTemplate>
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#E3EAEB" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
</asp:DataList>
<asp:Button ID="bt1" runat="server" OnClick="bt1_Click" Text="修改" />
<asp:Button ID="bt2" runat="server" OnClick="bt2_Click" Text="保存" />
</form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = new SqlConnection("server=172.16.32.86; database=DFL_IISP;uid=sa;pwd=dawnpro@2006;");
string sql = "select * from t_RoomAdmin where sid ='1020' or sid ='1021'";
conn.Open();
SqlCommand com = new SqlCommand(sql,conn);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(com);
sda.Fill(dt);
conn.Close();
DataList1.DataSource = dt;
DataList1.DataBind();
}
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
TextBox Codetxt = (TextBox)e.Item.FindControl("Codetxt");
TextBox useridtxt = (TextBox)e.Item.FindControl("useridtxt");
TextBox Role_idtxt = (TextBox)e.Item.FindControl("Role_idtxt");
Codetxt.Visible = false;
useridtxt.Visible = false;
Role_idtxt.Visible = false;
}
}
protected void bt1_Click(object sender, EventArgs e)
{
DataList dl = (DataList)Page.FindControl("DataList1");
for (int i = 0; i < dl.Items.Count;i++ )
{
TextBox Codetxt = (TextBox)dl.Items[i].FindControl("Codetxt");
TextBox useridtxt = (TextBox)dl.Items[i].FindControl("useridtxt");
TextBox Role_idtxt = (TextBox)dl.Items[i].FindControl("Role_idtxt");
//这里再把 那几个lable隐藏 这里不写了
Codetxt.Visible = true;
useridtxt.Visible = true;
Role_idtxt.Visible = true;
}
}
protected void bt2_Click(object sender, EventArgs e)
{
DataList dl = (DataList)Page.FindControl("DataList1");
for (int i = 0; i < dl.Items.Count; i++)
{
TextBox Codetxt = (TextBox)dl.Items[i].FindControl("Codetxt");
TextBox useridtxt = (TextBox)dl.Items[i].FindControl("useridtxt");
TextBox Role_idtxt = (TextBox)dl.Items[i].FindControl("Role_idtxt");
Label sid = (Label)dl.Items[i].FindControl("SIDLabel");
string ssid = sid.Text.ToString();
//获得了sid 把数据库update

Codetxt.Visible = true;
useridtxt.Visible = true;
Role_idtxt.Visible = true;
}
}
}



手上没有这方面的项目 所以简单的写了一个 你看看 是不是你说的需求。。。。
by1945 2008-07-14
  • 打赏
  • 举报
回复
能不能具体的写下代码,谢谢!

62,107

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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