绑定树节点及图标状态如下:
/// <summary>
/// 绑定数据上报导出树
/// </summary>
private void BindJgsyTree()
{
JGSYTreeService jgsyTreeService = new JGSYTreeService();
List<JGSYTree> listJgsyTree = jgsyTreeService.GetExportJgsyTree(Global.User.JS_USER_NAME);
treeListJgsyCommon.Columns.Add();
treeListJgsyCommon.Columns[0].Visible = true;
treeListJgsyCommon.DataSource = listJgsyTree;
treeListJgsyCommon.KeyFieldName = "JGSY_CODE";
treeListJgsyCommon.ParentFieldName = "JGSY_PARENT_CODE";
treeListJgsyCommon.Columns[0].FieldName = "JGSY_NAME";
treeListJgsyCommon.ExpandAll();
//ImageCollection imgCollection = TreeListImageState.GetImageCollection();
treeListJgsyCommon.StateImageList = TreeListImageState.GetImageList();//imgCollection; //
foreach (TreeListNode node in treeListJgsyCommon.Nodes)
{
node.StateImageIndex = (int)TreeNodeCheckImage.Loading;
BindApplyStateChild(node, true);
}
//异步更新是否有上报数据控制节点状态
BackgroundWorker bgWorker = new BackgroundWorker();
bgWorker.DoWork += new DoWorkEventHandler((sender1, e1) =>
{
InvokeSetControlEnable(false);
foreach (TreeListNode node in treeListJgsyCommon.Nodes)
{
string jgsyCode = node.GetValue("JGSY_CODE").ToString();
bool applyState = jgsyTreeService.GetApplyState(jgsyCode);
if (applyState)
node.StateImageIndex = (int)TreeNodeCheckImage.UnCheckedBranch;
else
node.StateImageIndex = (int)TreeNodeCheckImage.DisCheckedBranch;
BindApplyStateChild(node, false);
}
InvokeSetControlEnable(true);
});
bgWorker.RunWorkerAsync();
}
/// <summary>
/// 绑定申报状态
/// </summary>
private void BindApplyStateChild(TreeListNode treeNode, bool isLoading)
{
foreach (TreeListNode node in treeNode.Nodes)
{
if (isLoading)
node.StateImageIndex = (int)TreeNodeCheckImage.Loading;
else
{
string jgsyCode = node.GetValue("JGSY_CODE").ToString();
JGSYTreeService jgsyTreeService = new JGSYTreeService();
bool applyState = jgsyTreeService.GetApplyState(jgsyCode);
if (applyState)
node.StateImageIndex = (int)TreeNodeCheckImage.UnCheckedBranch;
else
node.StateImageIndex = (int)TreeNodeCheckImage.DisCheckedBranch;
}
BindApplyStateChild(node, isLoading);
}
}