0
私のページにはASP.NETツリービューがあります。ASP.NETツリービューコントロールは常にCheckedNodesリストにノードを追加します
public string GetSelectedTreeValues(TreeView tv)
{
string taxVal = string.Empty;
StringBuilder textBuilder = new StringBuilder();
string lists = string.Empty;
string cleanedlists = string.Empty;
try
{
TreeNodeCollection checkedNodes = tv.CheckedNodes;
foreach (TreeNode tn in checkedNodes)
{
lists = textBuilder.Append(tn.ValuePath + ",").ToString();
}
// removing any trailing commas
cleanedlists = lists.Substring(0, lists.Trim().Length - 1);
}
catch (Exception ex)
{
new ApplicationException("Error: Getting Tree Nodes", ex);
}
return cleanedlists;
}
私は、ポストバックを行う私が選択した値を変更した場合、彼らは常に値のリストにを追加するときに問題がされています。私の分離コードでは、私は次のような方法があります。私は値のリストがをクリアすると思った、新しい値にリセットします。
コードを踏んで、CheckedNodesプロパティが、チェックされていないノードを削除せずにチェックしたノードを常にリストに追加していることがわかりました。
おかげで、JBLとtryブロックの内容を交換する必要があります!あなたのソリューションはうまくいきました - 値パスを使用して、ポストバック間でチェックされるノードを設定することができます! :D(これは私が達成する必要があったものです) – Tim
私はあまりにも早く話しました...私はまだ* CheckedNodesコレクションに追加するツリービューで私は何をしているように見える。これは私にナッツを動かしている - ボックスのチェックを外すと値が更新されないのはなぜですか? – Tim
@Tim:コードのこの部分に問題はないようです。ツリービューに関連して他の部分を投稿してください。 – jbl