我正在使用xsd文件來驗證xml文件。在xsd文件中,只有少數元素是必需的,其餘是可選的。然而,它是連續的,因此元素在數據表中出現的順序很重要。在考慮用戶可能遇到的幾個場景之後,我想出了一個解決問題的案例。對數據表中的列進行重新排序?
案例如下: 例如, 在xsd文件中有6個元素A,B,C,D,E,F。只需要A,C和D. 用戶從A,C,D開始。我允許用戶添加一個名爲B的列。 但是,它會在末尾附加:A,C,D,B。因此,由於它是順序的,它不會驗證。
所以我的問題是,如何在A和C之間插入B以便xsd驗證通過?或者有沒有其他的方式來重新排序datagridview中的東西,並反映在數據表中?
我想我可以通過允許用戶重新排列表格顯示在datagridview中的列來解決問題。
編輯: 假設我不能改變xsd文件。
也就是說,
dataGridView1.AllowUserToOrderColumns = true;
但是,驗證總是對我說的最後一個必要元素之後的「元素」進行了展望。這意味着datagridview中datacolumn的移位並未反映在數據表本身中。
爲了通過驗證,我相信我需要在相應的地方插入列,它是相對於其他任何東西。或者至少在最後插入它,並在用戶按下確認按鈕時反映正確的順序。
我已經遇到一些其他的東西在網上告訴我要嘗試的東西,如:
Table.Columns["Column Name"].SetOrdinal(NewIndex);
但我還沒有付諸實施。如果上述行不起作用,任何想法? =) 此外,我希望能夠將數據表與用戶在datagridview中執行的操作同步。這將是理想的。如果用戶移動datagridview中的列,則數據表應反映該更改。
任何洞察力非常感謝,我很樂意提供額外的信息,如果需要。謝謝!
真誠, tf.rz
(.NET 3.5 SP1,Visual Studio的C#2008)
哇,這太簡單了。可悲的是我從來沒有想過這件事。我一定會着手,看看我將如何實施這樣的任務。它不應該太難。謝謝您的幫助!我會讓你知道它是怎麼回事。 ;) – 2011-06-28 15:29:39
什麼離合器,經過一些調整和測試100%工作。 XPath是一位神。我找到了解決問題的辦法,但你肯定讓我開始了。非常感謝!享受50代表! ;) – 2011-06-28 21:05:29
@ tf.rz我很高興它爲你工作! – 2011-06-29 02:53:27