カレンダーで選択された日付のデータのみをDataGridに表示させています。
DataGridに【削除】ボタンをつけて、押した分のデータをXMLファイルから削除したいのです。
資料に載っているものは、indexの値で指定しているので、
DataGridに表示されたもののindex値ともともとのデータ全体のindex値が違うために選択したデータが削除出来ず、困っています。
どなたかアドバイスをくださると嬉しいです。
すいませんマルチポストになってしまったので、この質問に対してのご回答は結構です。
ありがとうございました。
XMLをカウントさせたりして値を取得出来るように頑張ります。
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=18752&rev=&no=0
向こうの掲示板の書込みの方が詳しいしw
回答も付いてる。
謝罪の後、マルチポストしたサイトのアドレスを全て公開し、
どの掲示板で続けたいか明記して、『良かったら続ける掲示板の
方でご協力下さい』みたいな書込みの方が良いかもしんない。
なぜなら今後、同じ問題でつまづいた人にこのスレッドが協力できるから。
謝罪だけでは何の情報も与えられないでしょ?
誰かの協力を得たいなら、自分が協力できる事を考えられた方が
より良いよね?
特攻隊長まるるうさんご意見ありがとうございます。
そもそも私があちらの掲示板のルールを流し読みしてしまったことが問題でした。私が悪いので、これ以上協力を得るのは申し訳ないと思い、あちらでも続けるのを断念しました。
教えてくださったアドバイスで調べてみたのですが、私の知識不足で解決出来ませんでした。なので今ある知識で自力でプログラムを組み、たった今完成しました。ご迷惑おかけしてすいません。私がやった方法は決してスマートなやり方ではないので参考にならないかと思いますが、同じ問題でつまづいた方の1つの資料となれば幸いです。
表示されているDataGridに、XMLファイルのindexと同じ値が格納された列さえあればなんとかなると考えました。
新たにDataGridに列を増やし、(不可視にします)<idIndex>という要素にしました。
データ登録時には、XMLファイルにあるデータをカウントさせ個数を出し、For文でそのデータ数に1を増やしてidIndexに登録していきます。
Dim root As XmlNode = xmldoc.DocumentElement
root.RemoveChild(root.ChildNodes.Item(SearchIndex))
SearchIndexはクリックした列の不可視にされている値(idIndex)が入ります。この値をRemoveChildを利用して削除するようにしました。
しかしこの方法だと、削除するごとに数値が飛び飛びになってしまい、indexと異なってしまうので意味がありません。なので削除ボタンをクリックするごとに、XMLファイルの<idIndex>値を更新させるプログラムを組みました。
For i As Integer = 0 To count
'データの個数分繰り返す
resipiIndexNode(i).InnerText = i
'idIndexをデータ順で番号をつけかえる
Next
xmldoc.Save(filePath & "○○○.xml")
countは、データの個数-1の値が入っています。
resipiIndexNodeというのがidIndexです。
私はこのようにして解決しました。
だらだら長くなってしまいすいません。
>あちらでも続けるのを断念しました。
断念するのは投稿者さんの勝手ですが、迷惑をかけてしまったと思うなら長くても構いませんのでマルチポスト先にもその解決策を載せてはいかがでしょうか。
ただ謝られても、解決しましたと言われてもどう解決したかは分からないわけで、同じような問題に直面した向こうの掲示板だけを見た人は問題を解決できないですよね?
#リンクは貼ってあるのでそれでもいいのかもしれませんけど。
ツイート | ![]() |