Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在更新绑定到ASP.Net DataGrid的DataTable_C#_Asp.net_Datagrid_Datatable - Fatal编程技术网

C# 正在更新绑定到ASP.Net 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;

我在更新绑定到datagrid的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加载,效果很好。谢谢