首先,我使用复选框突出显示数据集中的true或false值,我希望能够更改它。不幸的是,将DataTable数据绑定到GridView复选框并不起作用(正如您可能知道的那样),因为它需要它处于“编辑”模式。
我得到的方法是让复选框单独读取数据表值,而不是数据绑定和锁定:
Checked='<%# Convert.ToBoolean(Eval("myValue")) %>'
这样就可以解决DataTable中的复选框值 - &gt; GridView,现在我需要做相反的更改复选框值来自GridView - &gt; DataTable尚未准备好将其提交到我的数据源(SQL)。
我想我需要在GridView行中运行一个循环,这就是一个给我的,我想不出的是如何在DataTable的一行中替换/更新一个单独的值,只有能够根据事物的外观添加或删除整行(我不想做的事情)。
那么有人可以提供解决方法吗? 或者有一种方法可以在网格视图中使用数据绑定但总是可编辑的复选框吗?
答案 0 :(得分:1)
我已经从Matt Dotson的这篇文章和相关代码开始解决了这个问题: http://blogs.msdn.com/mattdotson/articles/490868.aspx
基本上,默认情况下可以使所有行都可编辑 - 在您的情况下,您希望大多数列都是只读的。我认为我的第一次尝试只是将代码用作给出,但我最近的尝试是基于上面的代码完成的。
答案 1 :(得分:1)
dt.Rows [i] .ItemArray [j]会做到这一点:)
用列的索引替换j
ItemArray数组将包含给定行的所有项目:)
在MSDN上查看此文章 http://msdn.microsoft.com/en-us/library/system.data.datarow.itemarray.aspx