datagrid问题

ywcyj 2004-07-02 05:03:22
问一下,datagrid每一格的内容可以编辑吗?(类似与txtBox的效果)
能不能做到这个效果?
给个例子吧
...全文
154 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ywcyj 2004-07-05
  • 打赏
  • 举报
回复
谢谢各位,结贴
JeasonZF 2004-07-03
  • 打赏
  • 举报
回复
可以。
你只须将datagrid的EditItemIndex设置为你当前选中的行即可进行编辑。

编辑完后可采用两种方法保存修改的数据,
一:先修改dataset,然后一次行的导入到数据库,进行修改数据库

二:将你datagrid中的字段和数据库中的字段进行直接对应修改
wuzhijie 2004-07-03
  • 打赏
  • 举报
回复
当然可以.楼上给了例子,我就不给了
jinxf 2004-07-02
  • 打赏
  • 举报
回复
public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{

// 建立 UPDATE 命令字符串
string UpdateCmd = "UPDATE stud SET name = @name, sex = @sex, age = @age," +
"address = @address WHERE stud_id = @stud_id";

SqlCommand MyCommand = new SqlCommand(UpdateCmd, myConnection);

// 设定 UPDATE 命令字串中各个参数的数据类型与长度
MyCommand.Parameters.Add(new SqlParameter("@stud_id", SqlDbType.NVarChar, 10));
MyCommand.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 10));
MyCommand.Parameters.Add(new SqlParameter("@sex", SqlDbType.NVarChar ,10));
MyCommand.Parameters.Add(new SqlParameter("@age", SqlDbType.Int, 4));
MyCommand.Parameters.Add(new SqlParameter("@address", SqlDbType.NVarChar ,50));


// 取得主索引键之值(此处为学生编号)
MyCommand.Parameters["@stud_id"].Value = MyDataGrid.DataKeys[e.Item.ItemIndex];

string[] Cols = new string[] {"@stud_id", "@name", "@sex", "@age", "@address"};

// 取得 TableCell 物件的数目,也就是每一数据列之储存格的数目(等於 DataGrid 伺服器控制项中数据行的数目)
int NumCols = e.Item.Cells.Count;

// 略过第一栏与第二栏。因为第一栏是删除按钮,第二栏是编辑按钮。
for (int i = 2; i<= NumCols - 1; i++)
{
TextBox CurrentTextBox = (TextBox)e.Item.Cells[i].Controls[0];
string ColValue = CurrentTextBox.Text;

// 检查字段(储存格)的内容是否为 Null 值
if (ColValue == "")
{
//Message.Text = "错误: 每一个字段都必须输入数据不允许 Null 值!";
return;
}

MyCommand.Parameters[Cols[i - 2]].Value = ColValue;
}

try
{
// 呼叫 ExecuteNonQuery() 方法以便针对数据来源执行 UPDATE 命令
MyCommand.ExecuteNonQuery();

// 完成更新作业后使数据行跳出编辑模式
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException Exp)
{
if (Exp.Number == 2627)
Message.InnerHtml = "错误: 具有相同主索引键的数据纪录已经存在。";
else
Message.InnerHtml = "错误: 无法更新数据纪录,请确定各字段是否都已正确输入。";
}

// 关闭连接
MyCommand.Connection.Close();
BindGrid();

}
apooo 2004-07-02
  • 打赏
  • 举报
回复
下面的例子很好:


http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchtopquestionsaboutaspnetdatagridservercontrol.htm#vbtchtopquestionsaboutaspnetdatagridservercontroleditingmultiplerows
ywcyj 2004-07-02
  • 打赏
  • 举报
回复
我对datagrid不熟,我先看看 jupiterII() 说的例子
酋长 2004-07-02
  • 打赏
  • 举报
回复
当然可以啊
jupiterII 2004-07-02
  • 打赏
  • 举报
回复
http://samples.gotdotnet.com/quickstart/aspplus/default.aspx?url=/quickstart/aspplus/doc/webdataaccess.aspx

111,097

社区成员

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

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

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