【问题标题】:ASP.NET Gridview Checkbox value to DataTableASP.NET Gridview Checkbox 值到 DataTable
【发布时间】:2010-04-14 15:25:08
【问题描述】:

首先,我使用复选框突出显示数据集中的真值或假值,我希望能够更改它。不幸的是,将 DataTable 数据绑定到 GridView 复选框不起作用(您可能知道),因为它要求它处于“编辑”模式。

我解决这个问题的方法是让复选框单独读取数据表值,而不是被数据绑定和锁定:

Checked='<%# Convert.ToBoolean(Eval("myValue")) %>'

这样解决了来自 DataTable -> GridView 的复选框值,现在我需要做相反的事情,让更改的复选框值来自 GridView -> DataTable,因为它还没有准备好将其提交到我的数据源 (SQL)。

我想我需要在 GridView 行中运行一个循环,这是给定的,我不知道如何替换/更新 DataTable 的一行中的单个值,只有能够根据事物的外观添加或删除整行(我不想这样做)。

那么任何人都可以提供解决方法吗? 或者有没有办法在网格视图中有一个数据绑定但始终可编辑的复选框?

【问题讨论】:

    标签: c# asp.net gridview datatable checkbox


    【解决方案1】:

    我从 Matt Dotson 的这篇文章和相关代码开始解决了这个问题: http://blogs.msdn.com/mattdotson/articles/490868.aspx

    基本上,默认情况下可以使所有行都可编辑 - 在您的情况下,您希望大多数列是只读的。我认为我的第一次尝试只是使用了几乎相同的代码,但我最近的尝试是使用基于上述内容的我自己的代码完成的。

    【讨论】:

      【解决方案2】:

      dt.Rows[i].ItemArray[j] 可以解决问题:)

      将 j 替换为列的索引

      ItemArray 数组将包含给定行的所有项目 :)

      在 MSDN 上查看这篇文章 http://msdn.microsoft.com/en-us/library/system.data.datarow.itemarray.aspx

      【讨论】:

      • 我已经让这个工作一直到需要更改的地步。索引全部正确,这是成功的一半,但我无法将值设置为 ItemArray 值。您能否提供一个将值设置为 ItemArray 的示例?
      • dt.Rows[i].ItemArray[0] = "你好"; dt.Rows[i].ItemArray[1] = myVariable; dt.Rows[i].ItemArray[2] = 5+myInt; dt.Rows[i].ItemArray[2] = txtMyValue.Text;希望这会有所帮助:)
      猜你喜欢
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-27
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多