DevExpress - Select TreeList 中的多个复选框
DevExpress - Select multiple checkboxes in TreeList
假设我有一个包含 2 个组的 TreeList,教师和学生,有一列“状态”。我正在尝试为 select 所有活跃的教师和学生组实现一个按钮。
这是我目前所拥有的
public class MatchStatusOps : TreeListOperation
{
private string fieldName;
private string status;
private TreeList helper;
public TreeListMatchStatusOperation(string fieldName, string status,TreeList helper)
{
this.fieldName = fieldName;
this.status = status;
this.helper = helper;
}
public override void Execute(TreeListNode node)
{
String statusValue = Convert.ToString(node[fieldName]);
if (statusValue.Equals(status))
helper.SetNodeCheckState(node, CheckState.Checked, true);
}
}
然后,我从我的 TreeList 中调用它 class
MatchStatusOps operation = new MatchStatusOps("Status","Active",this);
this.NodesIterator.DoOperation(operation);
我无法制作复选框selected,我想这可能是因为节点selected 是状态节点,而不是复选框节点?我有什么想法可以让它发挥作用吗?谢谢
I think it may be because the node selected is the status nodes, not the checkbox nodes
那些不是节点,那些是列(通常由字段名绑定)。一个节点可以包含任意数量的列。
此外,这行代码确保您的操作在所有节点上 运行:
NodesIterator.DoOperation(operation);
下面的代码基于对您的数据源或屏幕截图中填充 TreeList
(如果未绑定)的代码的有根据的猜测。
代码:
public class MatchStatusOps : TreeListOperation
{
private readonly string fieldName;
private readonly string status;
private readonly string checkboxFieldName;
public MatchStatusOps(string fieldName, string status, string checkboxFieldName)
{
this.fieldName = fieldName;
this.status = status;
this.checkboxFieldName = checkboxFieldName;
}
public override void Execute(TreeListNode node)
{
String statusValue = Convert.ToString(node[fieldName]);
if (statusValue.Equals(status))
node[checkboxFieldName] = true;
}
}
用法:
var operation = new MatchStatusOps("Status","Active","YourCheckboxFieldName");
NodesIterator.DoOperation(operation);
请注意,我在要检查的给定节点上设置了一个 列 ,而不是节点本身。
确认在撰写本文时使用最新的 DevExpress 版本为我工作。
假设我有一个包含 2 个组的 TreeList,教师和学生,有一列“状态”。我正在尝试为 select 所有活跃的教师和学生组实现一个按钮。
这是我目前所拥有的
public class MatchStatusOps : TreeListOperation
{
private string fieldName;
private string status;
private TreeList helper;
public TreeListMatchStatusOperation(string fieldName, string status,TreeList helper)
{
this.fieldName = fieldName;
this.status = status;
this.helper = helper;
}
public override void Execute(TreeListNode node)
{
String statusValue = Convert.ToString(node[fieldName]);
if (statusValue.Equals(status))
helper.SetNodeCheckState(node, CheckState.Checked, true);
}
}
然后,我从我的 TreeList 中调用它 class
MatchStatusOps operation = new MatchStatusOps("Status","Active",this);
this.NodesIterator.DoOperation(operation);
我无法制作复选框selected,我想这可能是因为节点selected 是状态节点,而不是复选框节点?我有什么想法可以让它发挥作用吗?谢谢
I think it may be because the node selected is the status nodes, not the checkbox nodes
那些不是节点,那些是列(通常由字段名绑定)。一个节点可以包含任意数量的列。
此外,这行代码确保您的操作在所有节点上 运行:
NodesIterator.DoOperation(operation);
下面的代码基于对您的数据源或屏幕截图中填充 TreeList
(如果未绑定)的代码的有根据的猜测。
代码:
public class MatchStatusOps : TreeListOperation
{
private readonly string fieldName;
private readonly string status;
private readonly string checkboxFieldName;
public MatchStatusOps(string fieldName, string status, string checkboxFieldName)
{
this.fieldName = fieldName;
this.status = status;
this.checkboxFieldName = checkboxFieldName;
}
public override void Execute(TreeListNode node)
{
String statusValue = Convert.ToString(node[fieldName]);
if (statusValue.Equals(status))
node[checkboxFieldName] = true;
}
}
用法:
var operation = new MatchStatusOps("Status","Active","YourCheckboxFieldName");
NodesIterator.DoOperation(operation);
请注意,我在要检查的给定节点上设置了一个 列 ,而不是节点本身。
确认在撰写本文时使用最新的 DevExpress 版本为我工作。