我在 c# asp.net 中填充了一个树视图,并将数据绑定到它,一切都很好,并按应有的方式显示。我现在的问题是我希望保存对复选框的任何修改,即如果用户单击另一个框并保存但我选中的状态将保持为假。
这是我到目前为止所拥有的,它迭代了最初加载的内容而不是更改的内容,我尝试了很多变化,但没有设法让它工作 - 任何人有什么想法吗?
public void saveCheckedItems()
{
    if (treeListItems.CheckedNodes.Count > 0)
    {
        IList<RadTreeNode> allNodes = treeListItems.GetAllNodes();
        for (int i = 0; i < allNodes.Count; i++)
        {
            RadTreeNode node = (RadTreeNode)allNodes[i];
            string fileid = node.Value.ToString();
            if (node.Checked == true)
            {
                if (fileid.Length == 12)
                {
                    saveTreeChanges(Page.Request.QueryString["ID"], fileid,connectionStr);
                }
            }
        }
    }
}
编辑 -
创建树视图如下
<telerik:RadTreeView ID="treeListItems" runat="server" CheckBoxes="True" Height="320px"
                            TriStateCheckBoxes="true" CheckChildNodes="true" Skin="WebBlue" CssClass="table table-bordered" OnNodeDataBound="RadTreeView1_NodeDataBound" >
                        </telerik:RadTreeView>
像这样绑定数据
public void loadTreeList()
        {
            DataTable dt = treeMan.getTreeList(connectionStr);
            treeListItems.DataTextField = "Description";
            treeListItems.DataValueField = "FieldID";
            treeListItems.DataFieldID = "FieldID";
            treeListItems.DataFieldParentID = "ParentID";
            treeListItems.DataSource = dt;
            treeListItems.DataBind();
            treeListItems.ExpandAllNodes();
        }
在示例中,我测试了它的 3 层树,并在第三层检查了一个元素。当我单击更多项目时,只有这个已选中的项目在列表中可见