- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
当尝试更新 GridView 数据时,它成功运行,但它获取的是旧数据而不是您在文本框中键入的数据。
这是我的:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;
string phone = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text;
string email = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
int contactId = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text);
objLogic.UpdateContact(name, phone, email, contactId); //passes values to SQL to update database
GridView1.EditIndex = -1;
GridView1.DataBind();
}
和
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridView1.DataBind();
}
和
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.DataSource = objLogic.LoadClient();
DropDownList1.DataTextField = "name";
DropDownList1.DataValueField = "clientId";
DropDownList1.DataBind();
}
GridView1.DataSource = objLogic.LoadContacts(Convert.ToInt16(DropDownList1.SelectedValue));
GridView1.DataBind();
比如当前数据是:
姓名:布莱克,电话:123-234-3456,电子邮件:test@test.com,联系方式:22
我输入新数据:
姓名:约翰,电话:555-555-5555,电子邮件:test2@test2.com,联系人 ID:22
最终进入数据库的数据:
姓名:布莱克,电话:123-234-3456,电子邮件:test@test.com,联系方式:22
最佳答案
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.DataSource = objLogic.LoadClient();
DropDownList1.DataTextField = "name";
DropDownList1.DataValueField = "clientId";
DropDownList1.DataBind();
BindGrid();
}
}
protected void BindGrid()
{
GridView1.DataSource = objLogic.LoadContacts(Convert.ToInt16(DropDownList1.SelectedValue));
GridView1.DataBind();
}
每次页面回发时,您都在重新绑定(bind)网格。将网格的绑定(bind)移动到一个单独的函数中。完成行更新后,重新绑定(bind)网格。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;
string phone = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text;
string email = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
int contactId = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text);
objLogic.UpdateContact(name, phone, email, contactId); //passes values to SQL to update database
GridView1.EditIndex = -1;
BindGrid();
}
当您编辑时,您也必须调用 BindGrid。
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
//GridView1.DataBind(); this is meaningless, you have not set a DataSource
BindGrid();
}
关于c# - GridView RowUpdating 没有获取新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25121636/
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我使用以下代码在 OnUpdating 命令期间更新 gridview 中的值, protected void grid_view_RowUpdating(object sender, GridVie
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditInde
当尝试更新 GridView 数据时,它成功运行,但它获取的是旧数据而不是您在文本框中键入的数据。 这是我的: protected void GridView1_RowUpdating(object
我有一个 tableadapter,我想在触发 RowUpdated 事件时做一些事情。我不知道将代码放在哪里以将处理程序添加到事件。 public partial class MyTableAdap
我只是在测试我是否会在没有运气的情况下从文本框中获取更改的值。我只是无法获得新的值(value)。我究竟做错了什么?我已经尝试了很多东西。这是最新的。如何将更新后的新值添加到我的标签中?当我单击网格上
我有一个带有 AutoGenerateColumns="False" 的 Gridview。 我使用 TemplateField 在 GridView 的第一列中相应的 ItemTemplate 和
我正在尝试更新数据库中的一行。其他一切都工作正常,删除、创建、列出,但编辑一行给了我一个 createSQLFeatureNotSupportedException @Override pub
我正在使用 GridView 。当我单击编辑按钮时,会出现更新和取消按钮。 在修改来自 EditItemTemplate 的文本框中的值后,新值不会显示在事件处理程序 rowupdating() 中,
HTML 页面:
我在使用 RowUpdating 方法时遇到问题。我的 GridView 已连接到我们的本地 SQL Server,我正在尝试更新数据。以下是来自 MSDN 的 RowUpdating 方法的代码。
所以我在 OnRowUpdating 事件期间在 Gridview 中进行更新时遇到问题。 我想做的是在 SqlDataSource 中设置 UpdateCommand,然后使用该命令进行更新。事件正
我的 GridView 有问题。当我尝试编辑我的 GridView 时,我只得到旧值作为返回。 这是 RowUpdating 事件: protected void grid_RowUpdating(o
我遇到的问题是当我运行代码时遇到这个错误: "Cannot insert the value NULL into column 'OnHand', table 'C:\USERS\UNKNOWN\DE
I use TemplateField to create dropdownlist in 2nd column when in edit mode. but it cannot be find
我有一个 gridView,它有一个编辑、删除、更新和取消链接按钮来执行受尊重的功能。 编辑、删除和取消命令工作正常。 但问题是RowUpdating当我单击 gridView 上的更新链接按钮时,不
我一直在努力寻找一种方法来在我的 GridView 中获取标签的“旧”值。我试过使用 hiddenFields 来保存它们(这会给我这个错误) Error when using hiddenField
我已经能够解决最初无法一致插入记录的问题,但出现了新的错误消息。 现在,我收到GridView“GridView1”触发了未处理的事件RowUpdating。 当我单击“更新”按钮更新一行记录时,会发
我是一名优秀的程序员,十分优秀!