我想更改datagridview的某列中的文本,該文本是從數據表中爲演示目的而提供的(具體而言,我想將這些術語翻譯爲另一個語言) 。我假設我可以通過將整個數據移動到我自己的表中並在那裏修改它,但是如果它是可以避免的,我寧願不要這樣做。任何想法 ?更改從數據表提供的datagridview中的文本
回答
要做的第一件事就是正確綁定DataGridView和DataTable。
BindingSource bs = new BindingSource();
bs.Datasource = mydatatable;
dataGridView1.Datasource = bs;
您在DataTable中所做的任何更改都會自動反映到數據網格中,反之亦然。
接下來,您可能可能遍歷DataTable中的每一行。您可以在每行的指定列中翻譯該值。像這樣的東西: -
foreach(DataRow row in mydatatable.rows)
{
// Do your translation code
row["SpecificColumnName"] = yourTranslatedvalue;
}
它的非常基本的東西,但它可以幫助你開始。
使用DataGridView執行此操作的正確方法是使用CellFormating事件,在MSDN上描述here。在HowTo Article中有一個很好的例子,但我在這裏也給出了一個概述。
首先,你需要訂閱CellFormating
事件,無論是通過設計視圖或通過代碼:
this.dataGridView1.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.dataGridView1_CellFormatting);
然後在事件處理程序,你把你的邏輯格式化你的數據顯示:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (!dataGridView1.Rows[e.RowIndex].IsNewRow && e.ColumnIndex == dataGridView1.Columns["InterestingColumn"].Index)
{
if (e.Value == null)
return;
if (e.Value.ToString() == "TargetValue")
{
e.Value = "DisplayValue";
}
}
}
這不會改變DataSet中的基礎值 - 僅顯示值,並且事件在每個單元格離開事件後觸發,因此用戶可以將數據輸入到網格中(如果它不是隻讀的)並且將應用格式。
當然,所有這些都可以根據需要進行自定義,但CellFormating事件是最好的開始。
謝謝!它工作,雖然我不得不刪除第一個條件(datagridview1.rows [e.ColumIndex] .IsNewRow。爲什麼你會使用列索引作爲一個索引的行? –
對不起 - 這只是一個錯字,你當然會使用行索引。現在修復。 –
- 1. 使用文本框更改datagridview數據
- 2. ItemRenderers保存更改後數據提供列表中的狀態
- 3. 從DataGridView記錄列表中的更改
- 4. 在翻轉的DataGridView中更改數據
- 5. 更改火花數據網格的數據提供者數據?
- 6. 更新數據庫更改時的datagridview
- 7. 從datagridview更新數據庫中的值
- 8. 如何在條件上更改datagridview文本中的文本。
- 9. 更改IPA文件的移動提供
- 10. 在另一個數據網格的更改事件中更改數據網格的數據提供者
- 11. 在虛擬主機提供商的數據庫中更改`auto_increment_increment`
- 12. 保存DataGridView到數據庫的更改
- 13. 如何保存dataGridView更改的數據?
- 14. 的DataGridView更改數據源動態
- 15. 如何從testng中的多個文件中提供數據提供者
- 16. 當Datagridview值更改時更改數據表列值
- 17. 創建表格並填充文本提供的測試數據
- 18. 如何根據Datagridview的數據更改表單寬度
- 19. 更改按鈕數據提示文本(從
- 20. 如何在文本字段中從右向左提供數據?
- 21. 在行更改前提交DataGridView中的更改
- 22. 從datagridview更新數據庫
- 23. 根據兩個數據表中的差異更改datagridview中的顏色?
- 24. 根據來自文本框的輸入更改datagridview結果
- 25. Flex 4 - 數據提供者更改時的調用函數
- 26. 更改從數據庫拉GridView的列中的標題文本
- 27. 從datagridview中的數據填充不同形式的文本框
- 28. Flex 3.5.0;更新數據提供者更改後的ComboBox顯示列表
- 29. 從datagridview更改爲簡單的文本框
- 30. 如何提取從Pubchem(NCBI)提供的數據中提到的所有IUPAC名稱到文本文件中?
你的Datagrid綁定到數據表? – Derek
是的,第一行是this.dataGridView1.DataSource = mydatatable; –
我已經從原始(現已刪除)的問題中獲取了您不想更改數據的信息 - 僅顯示文本,並據此回答。讓我知道如果這不再成立。另外 - 對於翻譯,您可能會更好地提取數據並在數據表中到達datagridview之前對其進行翻譯。單元格格式化方法更多地意味着將代碼轉換爲有意義的文本。 –