private void GetChildSelectedOrgObj(TreeViewItem item, ref List <ExtOrgObj> selObjs) { foreach (TreeViewItem childItem in item.Items) { TreeViewItem myItem = (TreeViewItem)(item.ItemContainerGenerator.ContainerFromItem(childItem)); CheckBox cbx = Helper.UIHelper.FindChildControl <CheckBox>(myItem); if (cbx != null && cbx.IsChecked.GetValueOrDefault(false)) { OrgTreeItemTypes type = (OrgTreeItemTypes)(childItem.Tag); if (type == OrgTreeItemTypes.Post) { ExtOrgObj obj = childItem.DataContext as ExtOrgObj; ExtOrgObj pobj = item.DataContext as ExtOrgObj; if (obj != null && pobj != null) { //附父节点的值 ((T_HR_POST)obj.ObjectInstance).T_HR_DEPARTMENT = pobj.ObjectInstance as T_HR_DEPARTMENT; } } selObjs.Add(childItem.DataContext as ExtOrgObj); } GetChildSelectedOrgObj(childItem, ref selObjs); } }
private void lookUpTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { if (treeOrganization.SelectedItem.GetType() != typeof(TreeViewItem)) { return; } TreeViewItem item = (TreeViewItem)treeOrganization.SelectedItem; if (item == null || item.DataContext == null) { return; } OrgTreeItemTypes type = (OrgTreeItemTypes)(item.Tag); if (SelectedObjType == OrgTreeItemTypes.All || type == SelectedObjType) { SelectedObj = item.DataContext; if (SelectedObj is T_HR_POST) { TreeViewItem pitem = item.Parent as TreeViewItem; if (pitem != null) { ((T_HR_POST)SelectedObj).T_HR_DEPARTMENT = pitem.DataContext as T_HR_DEPARTMENT; } } } else { SelectedObj = null; } }
protected void lookUpTree_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { //return; if (treeOrganization.SelectedItem == null) { return; } if (treeOrganization.SelectedItem.GetType() != typeof(TreeViewItem)) { return; } TreeViewItem item = (TreeViewItem)treeOrganization.SelectedItem; //TODO: 这个方法在单选时选择有bug,可能是Selected事件与Checked事件有冲突 //CheckBox cbx = Helper.UIHelper.FindChildControl<CheckBox>(item); //if (cbx != null) // cbx.IsChecked = true; if (item == null || item.DataContext == null) { return; } OrgTreeItemTypes type = (OrgTreeItemTypes)(item.Tag); if ((SelectedObjType == OrgTreeItemTypes.All || SelectedObjType == OrgTreeItemTypes.Personnel) && type == OrgTreeItemTypes.Post) { //TODO:多选 ExtOrgObj obj = new ExtOrgObj(); obj = item.DataContext as ExtOrgObj; if (type == OrgTreeItemTypes.Post && obj != null) { //加载员工 BindEmployee(item, obj.ObjectID); } } else if (type == OrgTreeItemTypes.Department) { ExtOrgObj obj = new ExtOrgObj(); obj = item.DataContext as ExtOrgObj; if (depIDsCach.ContainsKey(obj.ObjectID)) { return; } BindPosition(obj.ObjectID, item); } }
private TreeViewItem GetParentItem(OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; foreach (TreeViewItem item in treeOrganization.Items) { tmpItem = GetParentItemFromChild(item, parentType, parentID); if (tmpItem != null) { break; } } return(tmpItem); }
private TreeViewItem GetParentItemFromChild(TreeViewItem item, OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; ExtOrgObj obj = item.DataContext as ExtOrgObj; if (obj != null && item.Tag != null && item.Tag.ToString() == parentType.ToString()) { switch (parentType) { case OrgTreeItemTypes.Company: T_HR_COMPANY tmpOrg = obj.ObjectInstance as T_HR_COMPANY; if (tmpOrg != null) { if (tmpOrg.COMPANYID == parentID) { return(item); } } break; case OrgTreeItemTypes.Department: T_HR_DEPARTMENT tmpDep = obj.ObjectInstance as T_HR_DEPARTMENT; if (tmpDep != null) { if (tmpDep.DEPARTMENTID == parentID) { return(item); } } break; } } if (item.Items != null && item.Items.Count > 0) { foreach (TreeViewItem childitem in item.Items) { tmpItem = GetParentItemFromChild(childitem, parentType, parentID); if (tmpItem != null) { break; } } } return(tmpItem); }
private TreeViewItem GetParentItemFromChild(TreeViewItem item, OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; if (item.Tag != null && item.Tag.ToString() == parentType.ToString()) { switch (parentType) { case OrgTreeItemTypes.Company: SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY tmpOrg = item.DataContext as SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY; if (tmpOrg != null) { if (tmpOrg.COMPANYID == parentID) { return(item); } } break; case OrgTreeItemTypes.Department: SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT tmpDep = item.DataContext as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT; if (tmpDep != null) { if (tmpDep.DEPARTMENTID == parentID) { return(item); } } break; } } if (item.Items != null && item.Items.Count > 0) { foreach (TreeViewItem childitem in item.Items) { tmpItem = GetParentItemFromChild(childitem, parentType, parentID); if (tmpItem != null) { break; } } } return(tmpItem); }
private void treeOrganization_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { LoadData(); TreeViewItem selectedItem = treeOrganization.SelectedItem as TreeViewItem; if (selectedItem != null) { OrgTreeItemTypes type = (OrgTreeItemTypes)(selectedItem.Tag); if (type == OrgTreeItemTypes.Department)//部门时才加载 { SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT department = selectedItem.DataContext as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT; string sValue = department.DEPARTMENTID; if (bingtree.depIDsCach.ContainsKey(sValue)) { return; //如果有加载过就不再再加载一次 } bingtree.BindPost(sValue); } } }
private void GetOrgInfoByChecked(ref string sType, ref string sValue, ref string strMsg) { List <ExtOrgObj> selObjs = new List <ExtOrgObj>(); foreach (TreeViewItem item in orgTree.treeOrganization.Items) { TreeViewItem myItem = (TreeViewItem)(orgTree.treeOrganization.ItemContainerGenerator.ContainerFromItem(item)); myItem.Style = Application.Current.Resources["TreeViewItemStyle"] as Style; CheckBox cbx = Helper.UIHelper.FindChildControl <CheckBox>(myItem); if (cbx != null && cbx.IsChecked.GetValueOrDefault(false)) { OrgTreeItemTypes type = (OrgTreeItemTypes)(item.Tag); selObjs.Add(item.DataContext as ExtOrgObj); } GetChildSelectedOrgObj(item, ref selObjs); } if (selObjs.Count() == 0) { strMsg = "请选择员工所在的公司再进行查询"; return; } if (selObjs.Count() > 1) { strMsg = "查询员工,只能选择单个机构做为范围查询"; return; } ExtOrgObj selobj = selObjs.FirstOrDefault(); sType = selobj.ObjectType.ToString(); sValue = selobj.ObjectID; }
private TreeViewItem GetParentItemFromChild(TreeViewItem item, OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; ExtOrgObj obj = item.DataContext as ExtOrgObj; if (obj != null && item.Tag != null && item.Tag.ToString() == parentType.ToString()) { switch (parentType) { case OrgTreeItemTypes.Company: T_HR_COMPANY tmpOrg = obj.ObjectInstance as T_HR_COMPANY; if (tmpOrg != null) { if (tmpOrg.COMPANYID == parentID) return item; } break; case OrgTreeItemTypes.Department: T_HR_DEPARTMENT tmpDep = obj.ObjectInstance as T_HR_DEPARTMENT; if (tmpDep != null) { if (tmpDep.DEPARTMENTID == parentID) return item; } break; } } if (item.Items != null && item.Items.Count > 0) { foreach (TreeViewItem childitem in item.Items) { tmpItem = GetParentItemFromChild(childitem, parentType, parentID); if (tmpItem != null) { break; } } } return tmpItem; }
private TreeViewItem GetParentItem(OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; foreach (TreeViewItem item in treeOrganization.Items) { tmpItem = GetParentItemFromChild(item, parentType, parentID); if (tmpItem != null) { break; } } return tmpItem; }
private TreeViewItem GetParentItemFromChild(TreeViewItem item, OrgTreeItemTypes parentType, string parentID) { TreeViewItem tmpItem = null; if (item.Tag != null && item.Tag.ToString() == parentType.ToInt32().ToString()) { switch (parentType) { case OrgTreeItemTypes.Company: SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY tmpOrg = item.DataContext as SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY; if (tmpOrg != null) { if (tmpOrg.COMPANYID == parentID) return item; } break; case OrgTreeItemTypes.Department: SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT tmpDep = item.DataContext as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT; if (tmpDep != null) { if (tmpDep.DEPARTMENTID == parentID) return item; } break; } } if (item.Items != null && item.Items.Count > 0) { foreach (TreeViewItem childitem in item.Items) { tmpItem = GetParentItemFromChild(childitem, parentType, parentID); if (tmpItem != null) { break; } } } return tmpItem; }