C# 正在更新绑定到ASP.Net DataGrid的DataTable
我在更新绑定到datagrid的datatable时遇到问题。尝试了许多方法,但问题是每次单击命令时,底层数据表都会恢复到初始状态 下面是示例代码: 在标签上单击:C# 正在更新绑定到ASP.Net DataGrid的DataTable,c#,asp.net,datagrid,datatable,C#,Asp.net,Datagrid,Datatable,我在更新绑定到datagrid的datatable时遇到问题。尝试了许多方法,但问题是每次单击命令时,底层数据表都会恢复到初始状态 下面是示例代码: 在标签上单击: protected void OnUserDataGridCommand(object source, DataGridCommandEventArgs e) { DataTable dt = DataGridUsers.DataSource as DataTable;
protected void OnUserDataGridCommand(object source, DataGridCommandEventArgs e)
{
DataTable dt = DataGridUsers.DataSource as DataTable;
if (e.CommandName == "Lock Out")
{
// Approach 1
e.Item.Cells[0].Text = "Lock";
DataGridUsers.DataSource = dt;
DataGridUsers.DataBind();
// Approach 2
dt.Rows[e.Item.ItemIndex]["FirstName"] = "LOCK";
dt.Rows[e.Item.ItemIndex].AcceptChanges();
DataGridUsers.DataSource = dt;
DataGridUsers.DataBind();
}
}
因此,这将更新该行的第一个名称为Lock,但当您单击另一行时,先前锁定的将恢复为第一个名称。当我不考虑显示锁的行而设置断点时,datatable始终是初始数据(无“锁”数据)。这一行通常不适用于我
DataTable dt = DataGridUsers.DataSource as DataTable;
您可能希望在会话中管理数据源,方法是在会话外进行修改检索数据源,然后将其重新绑定到网格
您可能还想看看数据源第一次绑定到网格的位置。它是否在回发中运行,从而覆盖您的更改。AH。。。。我是一个ASP.NETNoob,从webservice调用中获取PageLoad上的datatable。我没有意识到,当我更新表时,它会重新加载页面,添加和If(IsPostBack)从会话类型deal加载,效果很好。谢谢