我通过DataTable或DataSet填充DataGridView(grid1) 我可以删除一组选定的行,然后将它们添加到另一个未绑定的DataGridView(grid2) 当我从grid2中取出一行然后将其添加到grid1时会出现问题。
无法以编程方式将行添加到DataGridView的行中 控件是数据绑定时的集合。
这是因为
grid1.DataSource = myDataTable
or
grid1.DataSource = myDataSet
但是当我做的时候
grid1.DataSource = Nothing
删除grid1中的所有行。
是否有从数据源中分离datagridview但保留行?
答案 0 :(得分:0)
我可以想到一个解决方案,其中我将添加另一个未绑定的DataGridView(grid3),
以编程方式将绑定的datagridview(grid1)的内容复制到grid3
然后从那里操纵它。
答案 1 :(得分:0)
我没试过这个,但看看Copy方法:
grid1.DataSource = myDataTable.Copy
MSDN说“复制此DataTable的结构和数据。” 复制它也可以解除绑定它。
答案 2 :(得分:0)
如果你有数据绑定网格,你可能根本不应该使用网格中的行。更改您设置为数据源的表,然后网格将反映新行。
<?php
// This requires https://github.com/defuse/php-encryption
// php composer.phar require defuse/php-encryption
// Note: Crypto::Encrypt() returns raw binary, so you may want to use base64_encode() and base64_decode()for storing/transmitting ciphertexts to prevent encoding bugs.
ini_set('display_errors', 1); error_reporting(E_ALL);
require ("Crypto.php");
// Do this once then store it somehow:
$key = Crypto::CreateNewRandomKey();
$message = 'We are all living in a yellow submarine';
$ciphertext = Crypto::Encrypt($message, $key);
$plaintext = Crypto::Decrypt($ciphertext, $key);
if ($ciphertext === $plaintext)
{echo "<br><font color=green>Operation cryp - décrypt OK !!!!</font><br><br><br>$ciphertext === $plaintext<br><br>";}
else
{echo "<br><font color=red>Operation cryp - décrypt NOK !!!!</font><br><br>$ciphertext === $plaintext<br><br>";}
?>
现在新行将显示在数据绑定网格上。您也可以通过从数据源数据表中删除行来从网格中删除行。