Coolite TreePanel 操作之二: 右键菜单
代码
<script type="text/javascript">
function nodeLoad(node) {
Coolite.AjaxMethods.NodeLoad(node.id, {
success: function(result) {
var data = eval("(" + result + ")");
node.loadNodes(data);
},
failure: function(errorMsg) {
Ext.Msg.alert('Failure', errorMsg);
}
});
}
function addNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node) {
AddNewOrganization({
success: function(result) {
var data = eval("(" + result + ")");
node.appendChild(data);
},
failure: function(errorMsg) {
Ext.Msg.alert('Failure', errorMsg);
}
});
}
}
function delNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node) {
node.remove();
}
}
function refreshTree(tree) {
tree.el.mask('Loading...', 'x-loading-mask');
Coolite.AjaxMethods.RefreshMenu({
success: function(result) {
var nodes = eval(result);
tree.root.ui.remove();
tree.initChildren(nodes);
tree.root.render();
tree.el.unmask();
},
failure: function(msg) {
tree.el.unmask();
Ext.Msg.alert('Failure', '未能加载数据');
}
});
}
function getNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node != null) {
if (node.parentNode.id != null) {
//alert(node.parentNode.id);
Coolite.AjaxMethods.GetNode(node.parentNode.id);
}
}
}
Ext.override(Ext.grid.CheckboxSelectionModel, {
onMouseDown: function(e, t) {
if (e.button === 0 && (!this.checkOnly || (this.checkOnly && t.className == "x-grid3-row-checker")) && t.className != "x-grid3-row-expander" && !Ext.fly(t).hasClass("x-grid3-td-expander")) {
e.stopEvent();
var row = e.getTarget(".x-grid3-row");
if (row) {
var index = row.rowIndex;
if (this.isSelected(index)) {
if (!this.grid.enableDragDrop) {
if (!this.allowDeselect) {
return;
}
this.deselectRow(index);
} else {
this.deselectingFlag = true;
}
} else {
if (this.grid.enableDragDrop) {
this.deselectingFlag = false;
}
this.selectRow(index, true);
}
}
}
}
});
</script>
<div style="padding-left: 250px">
<ext:Store ID="StoreUser" runat="server" OnRefreshData="my_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="user_id">
</ext:RecordField>
<ext:RecordField Name="employee_name">
</ext:RecordField>
<ext:RecordField Name="e_mail">
</ext:RecordField>
<ext:RecordField Name="mobile_number">
</ext:RecordField>
<ext:RecordField Name="employee_no">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Menu ID="cmenu" runat="server">
<Items>
<ext:MenuItem ID="copyItems" runat="server" Text="New" Icon="Add">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'New');" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="editItems" runat="server" Text="Edit" Icon="NoteEdit">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'Edit');" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="moveItems" runat="server" Text="Delete" Icon="Decline">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'Delete');" />
</Listeners>
</ext:MenuItem>
</Items>
</ext:Menu>
<ext:ViewPort ID="ViewPort1" runat="server">
<Body>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<West Collapsible="true" Split="true" MinWidth="300" MaxWidth="350" MarginsSummary="5 0 5 5"
CMarginsSummary="5 5 5 5">
<ext:Panel runat="server" Title="Organization Property" Width="300" ID="pnlWest"
AutoScroll="true">
<Body>
<ext:Toolbar runat="server">
<Items>
<ext:ToolbarButton ID="ButtonNewOG" runat="server" Text="New" Icon="Add">
<ToolTips>
<ext:ToolTip ID="ToolTip4" Title="New Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<%-- <Listeners>
<Click Handler="addNode(#{TreePanelOrganization})" />
</Listeners>--%><Listeners>
<Click Handler="Coolite.AjaxMethods.OrganizationNew()" />
</Listeners>
<%--<AjaxEvents>
<Click OnEvent="OrganizationNew">
<EventMask ShowMask="true" Msg="Processing....." MinDelay="100"/>
</Click>
</AjaxEvents>--%></ext:ToolbarButton><%-- <ext:Button ID="ButtonNewOG" runat="server" Text="New" Icon="Add">
<ToolTips>
<ext:ToolTip ID="ToolTip1" Title="New Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.OrganizationNew()" />
</Listeners>
</ext:Button>--%><ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonEditOG" runat="server" Text="Edit " Icon="NoteEdit">
<ToolTips>
<ext:ToolTip ID="ToolTip2" Title="Edit Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonEditOG_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator2" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonDeleteOG" runat="server" Text="Delete" Icon="Decline">
<ToolTips>
<ext:ToolTip ID="ToolTip3" Title="Delete Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.DoConfirm()" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
<ext:TreePanel ID="TreePanelOrganization" runat="server" ContextMenuID="cmenu" AutoHeight="true"
AutoScroll="true">
<Listeners>
<ContextMenu Handler=" #{cmenu}.node=node;#{cmenu}.showAt(e.getPoint());" />
<Click Handler="#{TextFieldNode}.setValue(node.id);" />
<%-- <BeforeLoad Fn="nodeLoad" />--%></Listeners>
<AjaxEvents>
<Click OnEvent="getNode">
</Click>
</AjaxEvents>
</ext:TreePanel>
<ext:TextField ID="TextFieldNode" runat="server" Hidden="true">
</ext:TextField>
<ext:TextField ID="TextFieldParentNode" runat="server" Hidden="true">
</ext:TextField>
</Body>
<BottomBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button ID="ButtonNewRole" Icon="Add" Text="New Role" runat="server">
<ToolTips>
<ext:ToolTip Title="New Role" runat="server" ID="ToolTipNew">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonNewRole_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator3" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonDeleteRole" Icon="Decline" Text="Delete Role" runat="server">
<ToolTips>
<ext:ToolTip ID="ToolTipDelete" Title="Delete Role" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.DoDeleteRoleConfirm()" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</BottomBar>
</ext:Panel>
</West>
<Center MarginsSummary="5 5 5 0">
<ext:Panel ID="Panel5" runat="server" Title="User List">
<Body>
<ext:FitLayout ID="FitLayout1" runat="server" BodyStyle="padding:15px;">
<ext:Panel runat="server" AutoHeight="true" AutoWidth="true">
<Body>
<ext:Toolbar runat="server">
<Items>
<ext:ToolbarTextItem Text="Employee No">
</ext:ToolbarTextItem>
<ext:ToolbarSpacer ID="ToolbarSpacer2" runat="server" Width="20">
</ext:ToolbarSpacer>
<ext:TextField ID="TextFieldSNO" runat="server" FieldLabel="Employee NO">
</ext:TextField>
<ext:ToolbarSpacer ID="ToolbarSpacer3" runat="server" Width="20">
</ext:ToolbarSpacer>
<ext:ToolbarTextItem Text="Employee Name">
</ext:ToolbarTextItem>
<ext:TextField ID="TextFieldSName" runat="server" FieldLabel="Employee Name">
</ext:TextField>
<ext:Button ID="ButtonSearch" runat="server" Text="Query" Icon="Zoom">
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonSearch_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarFill ID="ToolbarFill1" runat="server">
</ext:ToolbarFill>
<ext:Button ID="ButtonNew" runat="server" Text="New User" Icon="Add">
<AjaxEvents>
<Click OnEvent="ButtonNewUser_Click">
<EventMask ShowMask="true" />
</Click>
</AjaxEvents>
</ext:Button>
</Items>
</ext:Toolbar>
<ext:GridPanel ID="GridPanelUser" runat="server" StoreID="StoreUser" Height="660"
AutoWidth="true" AutoExpandColumn="e_mail">
<ColumnModel>
<Columns>
<ext:CommandColumn Header="Delete" Hidden="true">
<Commands>
<ext:GridCommand Icon="Decline" Text="Delete" ToolTip-Text="Delete" CommandName="Delete">
</ext:GridCommand>
</Commands>
</ext:CommandColumn>
<ext:Column ColumnID="employee_no" Header="Employee No" DataIndex="employee_no" Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_name" Header="Employee Name" DataIndex="employee_name"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="mobile_number" Header="Mobile" DataIndex="mobile_number" Sortable="true">
</ext:Column>
<ext:Column ColumnID="e_mail" Header="Email" DataIndex="e_mail" Sortable="true">
</ext:Column>
<ext:Column ColumnID="user_id" Header="UserID" DataIndex="user_id" Hidden="true">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<%-- <ext:RowSelectionModel runat="server" SingleSelect="true" ID="RowSelectionModelUser">
</ext:RowSelectionModel>--%><ext:CheckboxSelectionModel ID="CheckboxSelectionModel2"
runat="server">
<%--<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>--%></ext:CheckboxSelectionModel></SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBar2" runat="server" PageSize="10" StoreID="StoreUser"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
<Listeners>
<Command Handler="Coolite.AjaxMethods.GridPanelUser_Command(command,record.data.user_id,record.data.employee_no)" />
</Listeners>
</ext:GridPanel>
</Body>
</ext:Panel>
</ext:FitLayout>
</Body>
</ext:Panel>
</Center>
</ext:BorderLayout>
</Body>
</ext:ViewPort>
<!-- Organization Maintain-->
<ext:Store ID="StoreBu" runat="server" AutoLoad="true">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="BuID">
</ext:RecordField>
<ext:RecordField Name="BuName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="StoreSite" runat="server" AutoLoad="true">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="SiteID">
</ext:RecordField>
<ext:RecordField Name="SiteName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewOrganization" runat="server" Icon="GroupAdd" Title="New Organization"
ShowOnLoad="false" Width="400" Height="400" BodyStyle="padding:5px;" Closable="true"
Modal="true">
<Body>
<%-- <ext:FormPanel ID="FormPanelMaintainOrg" runat="server">
<Body>
<ext:Panel ID="PanelMaintainOrg" runat="server">
<Body>
<ext:ColumnLayout runat="server">
<ext:LayoutColumn ColumnWidth="0.5">
</ext:LayoutColumn>
</ext:ColumnLayout>
</Body>
</ext:Panel>
</Body>
</ext:FormPanel>
--%><ext:Hidden ID="HiddenOrganizationID" runat="server">
</ext:Hidden>
<ext:FormLayout runat="server" ID="FormLayoutNewOrganization" LabelWidth="150">
<ext:Anchor>
<ext:TextField ID="TextFielOrganizationName" runat="server" FieldLabel="OrganizationName"
Width="200" BlankText="Organization Name " AllowBlank="false" EmptyText="Organization Name">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldParentOrgCode" runat="server" FieldLabel="ParentOrganization Code"
Width="200" Enabled="false" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFielOrganizationCode" runat="server" FieldLabel="OrganizationCode"
Width="200" BlankText="Organization Code " AllowBlank="false" EmptyText="Organization Code">
</ext:TextField>
</ext:Anchor>
<%-- <ext:Anchor Horizontal="100%">
<ext:TextArea ID="TextFieldGroupDescription" runat="server" Height="100" EmptyText="Description"
FieldLabel="Description" BlankText="Description" AllowBlank="true">
</ext:TextArea>
<%-- <ext:TextField ID="TextFieldGroupDescription" runat="server" FieldLabel="Description" >
</ext:TextField>
</ext:Anchor>--%>
<ext:Anchor>
<ext:TextField ID="TextFieldOrganizationFullName" runat="server" FieldLabel="OrganizationFullName"
Width="200" AllowBlank="false" BlankText="OrganizationFullName" EmptyText="OrganizationFullName">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldEnglishName" runat="server" FieldLabel="EnglishName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldChineseName" runat="server" FieldLabel="ChineseName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldJapaneseName" runat="server" FieldLabel="JapaneseName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldLegalEntityCode" runat="server" FieldLabel="LegalEntityCode"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="ComboBoxBu" runat="server" StoreID="StoreBu" Editable="false" DisplayField="BuName"
ValueField="BuID" TypeAhead="true" Mode="Local" ForceSelection="true" EmptyText="Select a bu..."
Resizable="true" SelectOnFocus="true" FieldLabel="Bu" Width="200">
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="ComboBoxSite" runat="server" DisplayField="SiteName" ValueField="SiteID"
FieldLabel="Site" EmptyText="Select a site..." StoreID="StoreSite" Width="200">
</ext:ComboBox>
</ext:Anchor>
</ext:FormLayout>
</Body>
<Buttons>
<ext:Button ID="ButtonSave" runat="server" Text="Save" Icon="Disk">
<AjaxEvents>
<Click OnEvent="Save">
</Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="ButtonCancel" runat="server" Text="Cancel" Icon="Cancel">
<AjaxEvents>
<Click OnEvent="ButtonCancel_Click">
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Window>
<!--Role Maintain -->
<ext:Store ID="StoreRoleList" runat="server" OnRefreshData="Rolelist_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="orgrole_id">
</ext:RecordField>
<ext:RecordField Name="orgrole_name">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewRole" runat="server" Title="New Role" Icon="GroupAdd" ShowOnLoad="false"
Width="400" Height="400" BodyStyle="padding:5px;" Closable="true" Modal="true">
<Body>
<ext:Panel ID="PanelRoleList" runat="server" Title="Role List">
<Body>
<ext:GridPanel ID="GropRoleList" runat="server" Height="300" AutoExpandColumn="orgrole_name"
StoreID="StoreRoleList">
<ColumnModel>
<Columns>
<ext:Column ColumnID="orgrole_id" Hidden="true" Header="Role ID" DataIndex="orgrole_id"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="orgrole_name" Header="Role Name" DataIndex="orgrole_name" Sortable="true">
</ext:Column>
</Columns>
</ColumnModel>
<%--<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="true" ID="RowSelectionModel1">
</ext:RowSelectionModel>
</SelectionModel>--%>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModelRole" runat="server">
<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>
</ext:CheckboxSelectionModel>
</SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBarRole" runat="server" PageSize="10" StoreID="StoreRoleList"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
</ext:GridPanel>
</Body>
<Buttons>
<ext:Button ID="ButtonSelect" runat="server" Text="Select">
<AjaxEvents>
<Click OnEvent="ButtonRoleListSelect_Click">
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{GropRoleList}.getRowsValues())"
Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Panel>
</Body>
</ext:Window>
<!--Organization Hr_Employee maintain-->
<ext:Store ID="StoreHrEmployee" runat="server" OnRefreshData="Userlist_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="user_id">
</ext:RecordField>
<ext:RecordField Name="employee_no">
</ext:RecordField>
<ext:RecordField Name="employee_name">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewHremployee" runat="server" Title="New User" Icon="GroupAdd"
ShowOnLoad="false" Width="400" Height="400" BodyStyle="padding:5px;" Closable="true"
Modal="true">
<Body>
<ext:Panel ID="PanelUserList" runat="server" Title="User List">
<Body>
<ext:GridPanel ID="GridPanelNewhremployee" runat="server" Height="300" AutoExpandColumn="employee_name"
StoreID="StoreHrEmployee">
<ColumnModel>
<Columns>
<ext:Column ColumnID="user_id" Hidden="false" Header="User ID" DataIndex="user_id"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_no" Hidden="false" Header="Employee No" DataIndex="employee_no"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_name" Header="Employee Name" DataIndex="employee_name"
Sortable="true">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModelHremployee" runat="server">
<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>
</ext:CheckboxSelectionModel>
</SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBarNewHremployee" runat="server" PageSize="10" StoreID="StoreHrEmployee"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
</ext:GridPanel>
</Body>
<Buttons>
<ext:Button ID="ButtonhrEmployeeSelect" runat="server" Text="Select">
<AjaxEvents>
<Click OnEvent="ButtonhrEmployeeSelect_Click">
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{GridPanelNewhremployee}.getRowsValues())"
Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Panel>
</Body>
</ext:Window>
</div>
<script type="text/javascript">
function ShowResult(btn) {
if (btn == 'yes') { Coolite.AjaxMethods.do_Yes(); } else { Coolite.AjaxMethods.do_No(); }
}
function DeleteOrgResult(btn) {
if (btn == 'yes') { Coolite.AjaxMethods.DeleteYes(); } else { Coolite.AjaxMethods.DeleteNo(); }
}
</script>
function nodeLoad(node) {
Coolite.AjaxMethods.NodeLoad(node.id, {
success: function(result) {
var data = eval("(" + result + ")");
node.loadNodes(data);
},
failure: function(errorMsg) {
Ext.Msg.alert('Failure', errorMsg);
}
});
}
function addNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node) {
AddNewOrganization({
success: function(result) {
var data = eval("(" + result + ")");
node.appendChild(data);
},
failure: function(errorMsg) {
Ext.Msg.alert('Failure', errorMsg);
}
});
}
}
function delNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node) {
node.remove();
}
}
function refreshTree(tree) {
tree.el.mask('Loading...', 'x-loading-mask');
Coolite.AjaxMethods.RefreshMenu({
success: function(result) {
var nodes = eval(result);
tree.root.ui.remove();
tree.initChildren(nodes);
tree.root.render();
tree.el.unmask();
},
failure: function(msg) {
tree.el.unmask();
Ext.Msg.alert('Failure', '未能加载数据');
}
});
}
function getNode(tree) {
var node = tree.getSelectionModel().getSelectedNode();
if (node != null) {
if (node.parentNode.id != null) {
//alert(node.parentNode.id);
Coolite.AjaxMethods.GetNode(node.parentNode.id);
}
}
}
Ext.override(Ext.grid.CheckboxSelectionModel, {
onMouseDown: function(e, t) {
if (e.button === 0 && (!this.checkOnly || (this.checkOnly && t.className == "x-grid3-row-checker")) && t.className != "x-grid3-row-expander" && !Ext.fly(t).hasClass("x-grid3-td-expander")) {
e.stopEvent();
var row = e.getTarget(".x-grid3-row");
if (row) {
var index = row.rowIndex;
if (this.isSelected(index)) {
if (!this.grid.enableDragDrop) {
if (!this.allowDeselect) {
return;
}
this.deselectRow(index);
} else {
this.deselectingFlag = true;
}
} else {
if (this.grid.enableDragDrop) {
this.deselectingFlag = false;
}
this.selectRow(index, true);
}
}
}
}
});
</script>
<div style="padding-left: 250px">
<ext:Store ID="StoreUser" runat="server" OnRefreshData="my_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="user_id">
</ext:RecordField>
<ext:RecordField Name="employee_name">
</ext:RecordField>
<ext:RecordField Name="e_mail">
</ext:RecordField>
<ext:RecordField Name="mobile_number">
</ext:RecordField>
<ext:RecordField Name="employee_no">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Menu ID="cmenu" runat="server">
<Items>
<ext:MenuItem ID="copyItems" runat="server" Text="New" Icon="Add">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'New');" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="editItems" runat="server" Text="Edit" Icon="NoteEdit">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'Edit');" />
</Listeners>
</ext:MenuItem>
<ext:MenuItem ID="moveItems" runat="server" Text="Delete" Icon="Decline">
<Listeners>
<Click Handler="Coolite.AjaxMethods.CMenuMaintain(this.parentMenu.node.id,'Delete');" />
</Listeners>
</ext:MenuItem>
</Items>
</ext:Menu>
<ext:ViewPort ID="ViewPort1" runat="server">
<Body>
<ext:BorderLayout ID="BorderLayout1" runat="server">
<West Collapsible="true" Split="true" MinWidth="300" MaxWidth="350" MarginsSummary="5 0 5 5"
CMarginsSummary="5 5 5 5">
<ext:Panel runat="server" Title="Organization Property" Width="300" ID="pnlWest"
AutoScroll="true">
<Body>
<ext:Toolbar runat="server">
<Items>
<ext:ToolbarButton ID="ButtonNewOG" runat="server" Text="New" Icon="Add">
<ToolTips>
<ext:ToolTip ID="ToolTip4" Title="New Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<%-- <Listeners>
<Click Handler="addNode(#{TreePanelOrganization})" />
</Listeners>--%><Listeners>
<Click Handler="Coolite.AjaxMethods.OrganizationNew()" />
</Listeners>
<%--<AjaxEvents>
<Click OnEvent="OrganizationNew">
<EventMask ShowMask="true" Msg="Processing....." MinDelay="100"/>
</Click>
</AjaxEvents>--%></ext:ToolbarButton><%-- <ext:Button ID="ButtonNewOG" runat="server" Text="New" Icon="Add">
<ToolTips>
<ext:ToolTip ID="ToolTip1" Title="New Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.OrganizationNew()" />
</Listeners>
</ext:Button>--%><ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonEditOG" runat="server" Text="Edit " Icon="NoteEdit">
<ToolTips>
<ext:ToolTip ID="ToolTip2" Title="Edit Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonEditOG_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator2" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonDeleteOG" runat="server" Text="Delete" Icon="Decline">
<ToolTips>
<ext:ToolTip ID="ToolTip3" Title="Delete Organization" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.DoConfirm()" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
<ext:TreePanel ID="TreePanelOrganization" runat="server" ContextMenuID="cmenu" AutoHeight="true"
AutoScroll="true">
<Listeners>
<ContextMenu Handler=" #{cmenu}.node=node;#{cmenu}.showAt(e.getPoint());" />
<Click Handler="#{TextFieldNode}.setValue(node.id);" />
<%-- <BeforeLoad Fn="nodeLoad" />--%></Listeners>
<AjaxEvents>
<Click OnEvent="getNode">
</Click>
</AjaxEvents>
</ext:TreePanel>
<ext:TextField ID="TextFieldNode" runat="server" Hidden="true">
</ext:TextField>
<ext:TextField ID="TextFieldParentNode" runat="server" Hidden="true">
</ext:TextField>
</Body>
<BottomBar>
<ext:Toolbar runat="server">
<Items>
<ext:Button ID="ButtonNewRole" Icon="Add" Text="New Role" runat="server">
<ToolTips>
<ext:ToolTip Title="New Role" runat="server" ID="ToolTipNew">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonNewRole_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator3" runat="server">
</ext:ToolbarSeparator>
<ext:Button ID="ButtonDeleteRole" Icon="Decline" Text="Delete Role" runat="server">
<ToolTips>
<ext:ToolTip ID="ToolTipDelete" Title="Delete Role" runat="server">
</ext:ToolTip>
</ToolTips>
<Listeners>
<Click Handler="Coolite.AjaxMethods.DoDeleteRoleConfirm()" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</BottomBar>
</ext:Panel>
</West>
<Center MarginsSummary="5 5 5 0">
<ext:Panel ID="Panel5" runat="server" Title="User List">
<Body>
<ext:FitLayout ID="FitLayout1" runat="server" BodyStyle="padding:15px;">
<ext:Panel runat="server" AutoHeight="true" AutoWidth="true">
<Body>
<ext:Toolbar runat="server">
<Items>
<ext:ToolbarTextItem Text="Employee No">
</ext:ToolbarTextItem>
<ext:ToolbarSpacer ID="ToolbarSpacer2" runat="server" Width="20">
</ext:ToolbarSpacer>
<ext:TextField ID="TextFieldSNO" runat="server" FieldLabel="Employee NO">
</ext:TextField>
<ext:ToolbarSpacer ID="ToolbarSpacer3" runat="server" Width="20">
</ext:ToolbarSpacer>
<ext:ToolbarTextItem Text="Employee Name">
</ext:ToolbarTextItem>
<ext:TextField ID="TextFieldSName" runat="server" FieldLabel="Employee Name">
</ext:TextField>
<ext:Button ID="ButtonSearch" runat="server" Text="Query" Icon="Zoom">
<Listeners>
<Click Handler="Coolite.AjaxMethods.ButtonSearch_Click()" />
</Listeners>
</ext:Button>
<ext:ToolbarFill ID="ToolbarFill1" runat="server">
</ext:ToolbarFill>
<ext:Button ID="ButtonNew" runat="server" Text="New User" Icon="Add">
<AjaxEvents>
<Click OnEvent="ButtonNewUser_Click">
<EventMask ShowMask="true" />
</Click>
</AjaxEvents>
</ext:Button>
</Items>
</ext:Toolbar>
<ext:GridPanel ID="GridPanelUser" runat="server" StoreID="StoreUser" Height="660"
AutoWidth="true" AutoExpandColumn="e_mail">
<ColumnModel>
<Columns>
<ext:CommandColumn Header="Delete" Hidden="true">
<Commands>
<ext:GridCommand Icon="Decline" Text="Delete" ToolTip-Text="Delete" CommandName="Delete">
</ext:GridCommand>
</Commands>
</ext:CommandColumn>
<ext:Column ColumnID="employee_no" Header="Employee No" DataIndex="employee_no" Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_name" Header="Employee Name" DataIndex="employee_name"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="mobile_number" Header="Mobile" DataIndex="mobile_number" Sortable="true">
</ext:Column>
<ext:Column ColumnID="e_mail" Header="Email" DataIndex="e_mail" Sortable="true">
</ext:Column>
<ext:Column ColumnID="user_id" Header="UserID" DataIndex="user_id" Hidden="true">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<%-- <ext:RowSelectionModel runat="server" SingleSelect="true" ID="RowSelectionModelUser">
</ext:RowSelectionModel>--%><ext:CheckboxSelectionModel ID="CheckboxSelectionModel2"
runat="server">
<%--<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>--%></ext:CheckboxSelectionModel></SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBar2" runat="server" PageSize="10" StoreID="StoreUser"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
<Listeners>
<Command Handler="Coolite.AjaxMethods.GridPanelUser_Command(command,record.data.user_id,record.data.employee_no)" />
</Listeners>
</ext:GridPanel>
</Body>
</ext:Panel>
</ext:FitLayout>
</Body>
</ext:Panel>
</Center>
</ext:BorderLayout>
</Body>
</ext:ViewPort>
<!-- Organization Maintain-->
<ext:Store ID="StoreBu" runat="server" AutoLoad="true">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="BuID">
</ext:RecordField>
<ext:RecordField Name="BuName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="StoreSite" runat="server" AutoLoad="true">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="SiteID">
</ext:RecordField>
<ext:RecordField Name="SiteName">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewOrganization" runat="server" Icon="GroupAdd" Title="New Organization"
ShowOnLoad="false" Width="400" Height="400" BodyStyle="padding:5px;" Closable="true"
Modal="true">
<Body>
<%-- <ext:FormPanel ID="FormPanelMaintainOrg" runat="server">
<Body>
<ext:Panel ID="PanelMaintainOrg" runat="server">
<Body>
<ext:ColumnLayout runat="server">
<ext:LayoutColumn ColumnWidth="0.5">
</ext:LayoutColumn>
</ext:ColumnLayout>
</Body>
</ext:Panel>
</Body>
</ext:FormPanel>
--%><ext:Hidden ID="HiddenOrganizationID" runat="server">
</ext:Hidden>
<ext:FormLayout runat="server" ID="FormLayoutNewOrganization" LabelWidth="150">
<ext:Anchor>
<ext:TextField ID="TextFielOrganizationName" runat="server" FieldLabel="OrganizationName"
Width="200" BlankText="Organization Name " AllowBlank="false" EmptyText="Organization Name">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldParentOrgCode" runat="server" FieldLabel="ParentOrganization Code"
Width="200" Enabled="false" ReadOnly="true">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFielOrganizationCode" runat="server" FieldLabel="OrganizationCode"
Width="200" BlankText="Organization Code " AllowBlank="false" EmptyText="Organization Code">
</ext:TextField>
</ext:Anchor>
<%-- <ext:Anchor Horizontal="100%">
<ext:TextArea ID="TextFieldGroupDescription" runat="server" Height="100" EmptyText="Description"
FieldLabel="Description" BlankText="Description" AllowBlank="true">
</ext:TextArea>
<%-- <ext:TextField ID="TextFieldGroupDescription" runat="server" FieldLabel="Description" >
</ext:TextField>
</ext:Anchor>--%>
<ext:Anchor>
<ext:TextField ID="TextFieldOrganizationFullName" runat="server" FieldLabel="OrganizationFullName"
Width="200" AllowBlank="false" BlankText="OrganizationFullName" EmptyText="OrganizationFullName">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldEnglishName" runat="server" FieldLabel="EnglishName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldChineseName" runat="server" FieldLabel="ChineseName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldJapaneseName" runat="server" FieldLabel="JapaneseName"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:TextField ID="TextFieldLegalEntityCode" runat="server" FieldLabel="LegalEntityCode"
Width="200">
</ext:TextField>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="ComboBoxBu" runat="server" StoreID="StoreBu" Editable="false" DisplayField="BuName"
ValueField="BuID" TypeAhead="true" Mode="Local" ForceSelection="true" EmptyText="Select a bu..."
Resizable="true" SelectOnFocus="true" FieldLabel="Bu" Width="200">
</ext:ComboBox>
</ext:Anchor>
<ext:Anchor>
<ext:ComboBox ID="ComboBoxSite" runat="server" DisplayField="SiteName" ValueField="SiteID"
FieldLabel="Site" EmptyText="Select a site..." StoreID="StoreSite" Width="200">
</ext:ComboBox>
</ext:Anchor>
</ext:FormLayout>
</Body>
<Buttons>
<ext:Button ID="ButtonSave" runat="server" Text="Save" Icon="Disk">
<AjaxEvents>
<Click OnEvent="Save">
</Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="ButtonCancel" runat="server" Text="Cancel" Icon="Cancel">
<AjaxEvents>
<Click OnEvent="ButtonCancel_Click">
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Window>
<!--Role Maintain -->
<ext:Store ID="StoreRoleList" runat="server" OnRefreshData="Rolelist_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="orgrole_id">
</ext:RecordField>
<ext:RecordField Name="orgrole_name">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewRole" runat="server" Title="New Role" Icon="GroupAdd" ShowOnLoad="false"
Width="400" Height="400" BodyStyle="padding:5px;" Closable="true" Modal="true">
<Body>
<ext:Panel ID="PanelRoleList" runat="server" Title="Role List">
<Body>
<ext:GridPanel ID="GropRoleList" runat="server" Height="300" AutoExpandColumn="orgrole_name"
StoreID="StoreRoleList">
<ColumnModel>
<Columns>
<ext:Column ColumnID="orgrole_id" Hidden="true" Header="Role ID" DataIndex="orgrole_id"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="orgrole_name" Header="Role Name" DataIndex="orgrole_name" Sortable="true">
</ext:Column>
</Columns>
</ColumnModel>
<%--<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="true" ID="RowSelectionModel1">
</ext:RowSelectionModel>
</SelectionModel>--%>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModelRole" runat="server">
<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>
</ext:CheckboxSelectionModel>
</SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBarRole" runat="server" PageSize="10" StoreID="StoreRoleList"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
</ext:GridPanel>
</Body>
<Buttons>
<ext:Button ID="ButtonSelect" runat="server" Text="Select">
<AjaxEvents>
<Click OnEvent="ButtonRoleListSelect_Click">
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{GropRoleList}.getRowsValues())"
Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Panel>
</Body>
</ext:Window>
<!--Organization Hr_Employee maintain-->
<ext:Store ID="StoreHrEmployee" runat="server" OnRefreshData="Userlist_RefreshData">
<Reader>
<ext:JsonReader>
<Fields>
<ext:RecordField Name="user_id">
</ext:RecordField>
<ext:RecordField Name="employee_no">
</ext:RecordField>
<ext:RecordField Name="employee_name">
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Window ID="WindowNewHremployee" runat="server" Title="New User" Icon="GroupAdd"
ShowOnLoad="false" Width="400" Height="400" BodyStyle="padding:5px;" Closable="true"
Modal="true">
<Body>
<ext:Panel ID="PanelUserList" runat="server" Title="User List">
<Body>
<ext:GridPanel ID="GridPanelNewhremployee" runat="server" Height="300" AutoExpandColumn="employee_name"
StoreID="StoreHrEmployee">
<ColumnModel>
<Columns>
<ext:Column ColumnID="user_id" Hidden="false" Header="User ID" DataIndex="user_id"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_no" Hidden="false" Header="Employee No" DataIndex="employee_no"
Sortable="true">
</ext:Column>
<ext:Column ColumnID="employee_name" Header="Employee Name" DataIndex="employee_name"
Sortable="true">
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:CheckboxSelectionModel ID="CheckboxSelectionModelHremployee" runat="server">
<CustomConfig>
<ext:ConfigItem Name="checkOnly" Value="true" Mode="Raw" />
</CustomConfig>
</ext:CheckboxSelectionModel>
</SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolBarNewHremployee" runat="server" PageSize="10" StoreID="StoreHrEmployee"
DisplayInfo="true" />
</BottomBar>
<SaveMask ShowMask="false" />
<LoadMask ShowMask="true" />
</ext:GridPanel>
</Body>
<Buttons>
<ext:Button ID="ButtonhrEmployeeSelect" runat="server" Text="Select">
<AjaxEvents>
<Click OnEvent="ButtonhrEmployeeSelect_Click">
<ExtraParams>
<ext:Parameter Name="Values" Value="Ext.encode(#{GridPanelNewhremployee}.getRowsValues())"
Mode="Raw" />
</ExtraParams>
</Click>
</AjaxEvents>
</ext:Button>
</Buttons>
</ext:Panel>
</Body>
</ext:Window>
</div>
<script type="text/javascript">
function ShowResult(btn) {
if (btn == 'yes') { Coolite.AjaxMethods.do_Yes(); } else { Coolite.AjaxMethods.do_No(); }
}
function DeleteOrgResult(btn) {
if (btn == 'yes') { Coolite.AjaxMethods.DeleteYes(); } else { Coolite.AjaxMethods.DeleteNo(); }
}
</script>
代码
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
//New Reference
using Coolite.Ext.Web;
using System.Collections.Generic;
using PMS.Web.Admin.OrganizationService;
using System.Text;
namespace PMS.Web.Admin.Department
{
public partial class DepartmentListMaintain : PMS.Web.Base.PageBase
{
// PMS_ConnectionString context = new PMS_ConnectionString();
//web service 实例化
OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
Hashtable table = new Hashtable();
//操作状态的标示
static string flag = "New";
/// <summary>
/// Load Data
/// Init Page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && !Ext.IsAjaxRequest)
{
//组织机构与组织人员、组织角色与组织人员的加载
GridPanelBind("", "");
//LoadTree();
//组织机构树的加载,返回Json
string temp = RefreshMenu();
//site列表加载
BindComboBoxSite();
//bu列表加载
BindComboxBu();
this.NavigationChildFunction = "Organization Maintain";
}
if (string.Compare(TextFieldNode.Text.Trim(), "") != 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (orgEntity != null)
{
Node_id = TextFieldNode.Text;
Role_id = "";
org_RoleID = TextFieldParentNode.Text;
}
else
{
Role_id = TextFieldNode.Text;
Node_id = "";
org_RoleID = TextFieldParentNode.Text;
}
}
}
//获取树节点ID
public string Node_id
{
get
{
object TreeNodeId = this.ViewState["TreeNodeId"];
return TreeNodeId == null ? string.Empty : (string)TreeNodeId;
}
set
{
this.ViewState["TreeNodeId"] = value;
}
}
public string Role_id
{
get
{
object RoleID = this.ViewState["RoleID"];
return RoleID == null ? string.Empty : (string)RoleID;
}
set
{
this.ViewState["RoleID"] = value;
}
}
public string org_RoleID
{
get
{
object org_RoleID = this.ViewState["org_RoleID"];
return org_RoleID == null ? string.Empty : (string)org_RoleID;
}
set
{
this.ViewState["org_RoleID"] = value;
}
}
#region ----------递归加载树-----------
/// <summary>
/// 组织角色的加载
/// </summary>
/// <param name="OrganizationID">组织部门的code</param>
/// <param name="node">组织部门node</param>
private void LoadOrgRoleByOrganizationID(string OrganizationID, Coolite.Ext.Web.TreeNode node)
{
MSG_GetOrgRoleOrgListRequest request = new MSG_GetOrgRoleOrgListRequest();
request.organizationid = OrganizationID;
request.orgrole_id = "";
DCC_OrgRoleList orgRoleList = client.GetOrgRoleOrgList(request);
foreach (var orgrole in orgRoleList.ToList())
{
Coolite.Ext.Web.TreeNode rolenode = new Coolite.Ext.Web.TreeNode();
rolenode.NodeID = orgrole.orgrole_id;
rolenode.Text = orgrole.orgrole_name;
rolenode.Qtip = orgrole.orgrole_desc;
rolenode.Expanded = true;
node.Nodes.Add(rolenode);
}
}
private void LoadTree()
{
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode("Hisoft", "Hisoft", Icon.Group);
node.Qtip = "Hisoft";
TreePanelOrganization.Root.Add(node);
node.Expanded = true;
//client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
DCC_ResorganizationList organizationlist = client.GetOrganizationList("");
foreach (var superCode in organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
string parentcode = superCode.OrganizationCode;
supernode.NodeID = superCode.OrganizationCode;
supernode.Text = superCode.OrganizationName;
supernode.Qtip = superCode.OrganizationFullName;
supernode.Cls = superCode.OrganizationID;
supernode.Icon = Icon.GroupKey;
node.Expanded = true;
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
//IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//foreach (var superCode in OrgSuperDepartment)
//{
// Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
// supernode.NodeID = superCode.organization_code;
// supernode.Text = superCode.organization_name;
// supernode.Qtip = superCode.organization_full_name;
// supernode.Icon = Icon.GroupKey;
// node.Nodes.Add(supernode);
// CreateCycleTree(supernode.NodeID, supernode);
//}
}
/// <summary>
/// 组织机构、组织角色树的加载 //WCF entity framework 方法
/// </summary>
/// <param name="nodes"></param>
/// <returns>TreeNodeCollection</returns>
private Coolite.Ext.Web.TreeNodeCollection LoadTree(Coolite.Ext.Web.TreeNodeCollection nodes)
{
if (nodes == null)
{
nodes = new Coolite.Ext.Web.TreeNodeCollection();
}//根节点为null时
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode("Hisoft", "Hisoft", Icon.Group);
node.Qtip = "Hisoft";
nodes.Add(node);
node.Expanded = true;
// OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
// client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
//所有父节点的加载
DCC_ResorganizationList organizationlist = client.GetOrganizationList("");
foreach (var superCode in organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
string parentcode = superCode.OrganizationCode;
supernode.NodeID = superCode.OrganizationCode;
supernode.Text = superCode.OrganizationName;
supernode.Qtip = superCode.OrganizationFullName;
supernode.Cls = superCode.OrganizationID;
//supernode.Expanded = true;
supernode.Icon = Icon.GroupKey;
//supernode.CustomAttributes.Add(new ConfigItem(
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
return nodes;
//linq to sql class 方法
//IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//foreach (var superCode in OrgSuperDepartment)
//{
// Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
// supernode.NodeID = superCode.organization_code;
// supernode.Text = superCode.organization_name;
// supernode.Qtip = superCode.organization_full_name;
// supernode.Icon = Icon.GroupKey;
// node.Nodes.Add(supernode);
// CreateCycleTree(supernode.NodeID, supernode);
//}
}
/// <summary>
/// 递归加载树
/// </summary>
/// <param name="code">父节点的code</param>
/// <param name="parentcode">父节点</param>
private void CreateCycleTree(string code, Coolite.Ext.Web.TreeNode parentcode)
{
// OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
//根据父节点的ID得到该节点下的所有子节点
DCC_ResorganizationList orgDepartment = client.GetOrganizationList(code);
// IList<RES_Organization> orgDepartment = OrgData.GetCycleOrganization(code, context);
foreach (var org in orgDepartment.ToList())
{
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode();
string orgparentcode = org.OrganizationCode;
node.NodeID = org.OrganizationCode;
node.Text = org.OrganizationName;
node.Qtip = org.OrganizationFullName;
node.Cls = org.OrganizationID;
node.Icon = Icon.GroupGo;
parentcode.Nodes.Add(node);
LoadOrgRoleByOrganizationID(org.OrganizationID, node);
CreateCycleTree(orgparentcode, node);
}
}
#endregion
/// <summary>
/// Bind GridPanel
/// </summary>
private void GridPanelBind(string employeeno, string employeename)
{
MSG_GetOrganizationEntityRequest request = new MSG_GetOrganizationEntityRequest();
DC_Resorganization organizationEntity = new DC_Resorganization();
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
if (string.Compare(TextFieldNode.Text, "") != 0)
{
if (string.Compare(TextFieldNode.Text, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please input query condition.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSearch.ClientID
});
return;
}
organizationEntity = client.GetOrganizationEntity(TextFieldNode.Text);
//organizationEntity 为null ,则是组织角色与组织人员
if (organizationEntity == null)
{
string JsFunction = "getNode(#{TreePanelOrganization})";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
hremployeelistrequest.DepartmentID = TextFieldParentNode.Text;
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = TextFieldNode.Text;
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
else
{
hremployeelistrequest.DepartmentID = TextFieldNode.Text;
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}//组织部门与组织人员
}
}
#region -----右键菜单-----
[AjaxMethod]
public void CMenuMaintain(string id,string flag)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(id);
if(string.Compare(flag,"New")==0)
{
if (id == "Hisoft")
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization or a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
});
return;
}
else
{
if (orgEntity == null)
{
ButtonNewRole_Click();
}
else
{
Node_id = id;
TextFieldNode.Text = id;
OrganizationNew();
}
}
}
else if(string.Compare(flag,"Edit")==0)
{
if (orgEntity == null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
});
return;
}
else
{
Node_id = id;
ButtonEditOG_Click();
}
}
else if (string.Compare(flag, "Delete") == 0)
{
if (orgEntity == null)
{
DoDeleteRoleConfirm();
}
else
{
DoConfirm();
}
}
}
#endregion
#region ---------查询操作-------
/// <summary>
/// Query
/// Condition:EmployeeNo EmployeeName
/// </summary>
[AjaxMethod]
public void ButtonSearch_Click()
{
if (TextFieldSNO.Text.Trim() == "" && TextFieldSName.Text.Trim() == "")
{
GridPanelBind("", "");
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = Node_id;
hremployeelistrequest.EmployeeName = TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
private void HrEmployeeBind()
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = "hremployee";
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreHrEmployee.DataSource = hremployeelist.ToList();
StoreHrEmployee.DataBind();
}
}
#region ----------添加用户操作-------
protected void ButtonNewUser_Click(object sender, AjaxEventArgs e)
{
WindowNewHremployee.Show();
HrEmployeeBind();
}
public void ButtonhrEmployeeSelect_Click(object sender, AjaxEventArgs e)
{
RowSelectionModel sm = this.GridPanelNewhremployee.SelectionModel.Primary as RowSelectionModel;
string json = e.ExtraParams["Values"];
bool addHeader = true;
DataTable dt = new DataTable();
StringBuilder strstring = new StringBuilder();
Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader = false;
ArrayList list = new ArrayList();
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dr[keyValuePair.Key] = keyValuePair.Value;
if (keyValuePair.Key == "user_id")
{
strstring.Append(keyValuePair.Value + ";");
}
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
DC_Resorganization resorgEntity = client.GetOrganizationEntity(TextFieldNode.Text);
if (resorgEntity != null)
{
DC_HREmployee hrEmployee = new DC_HREmployee();
DC_OperationType operationtype = new DC_OperationType();
MSG_HREmployeeMaintainRequest request = new MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
hrEmployee.user_id = dr["user_id"].ToString();
hrEmployee.employee_no = dr["employee_no"].ToString();
hrEmployee.department_id = Node_id;
request.HREmployeeEntity = hrEmployee;
client.HREmployeeMaintain(request);
}
else
{
MSG_UserOrgRoleMaintainRequest request=new MSG_UserOrgRoleMaintainRequest();
DC_OperationType operationtype = new DC_OperationType();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
request.orgrole_id = TextFieldNode.Text;
request.user_id = strstring.ToString();
client.UserOrgRoleMaintain(request);
break;
}
}
this.WindowNewHremployee.Hide();
GridPanelBind("", "");
}
}
#endregion
#region
/// <summary>
/// Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void my_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
GridPanelBind("", "");
}
/// <summary>
/// Role List Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Rolelist_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
RoleGridPanelBind();
}
/// <summary>
/// User List Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Userlist_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
if (TextFieldSNO.Text.Trim() == "" && TextFieldSName.Text.Trim() == "")
{
GridPanelBind("", "");
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = Node_id;
hremployeelistrequest.EmployeeName = TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
/// <summary>
/// GridPanel Command
/// </summary>
/// <param name="command"></param>
/// <param name="id"></param>
[AjaxMethod]
public void GridPanelUser_Command(string command, string userid, string employeeno)
{
if (command == "Delete")
{
DC_HREmployee hrEmployee = new DC_HREmployee();
DC_OperationType operationtype = new DC_OperationType();
MSG_HREmployeeMaintainRequest request = new MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
request.OperationType = operationtype;
hrEmployee.user_id = userid;
hrEmployee.employee_no = employeeno;
request.HREmployeeEntity = hrEmployee;
client.HREmployeeMaintain(request);
GridPanelBind("", "");
}
}
#region 组织机构树维护
/// <summary>
/// 得到点击的树节点的ID
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void getNode(object sender, AjaxEventArgs e)
{
if (string.Compare(TextFieldNode.Text.Trim(), "Hisoft") != 0)
{
string JsFunction = "getNode(#{TreePanelOrganization})";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
// GridPanelBind("", "");
if (string.Compare(TextFieldNode.Text.Trim(), "") != 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (orgEntity != null)
{
Node_id = TextFieldNode.Text;
GridPanelBind("", "");
Role_id = "";
}
else
{
Role_id = TextFieldNode.Text;
GridPanelBind("", "");
Node_id = "";
}
}
}
}
[AjaxMethod]
public void GetNode(string id)
{
TextFieldParentNode.Text = id;
//string JsFunction = "alert('"+id+"');";
//Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
//sm.AddScript(string.Format("{0};", JsFunction));
}
#region ----------Cancel Organization Maintain-------
/// <summary>
///Cancel Organization Maintain
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ButtonCancel_Click(object sender, AjaxEventArgs e)
{
Ext.Msg.Confirm("Tips", "Are you sure want to cancel ?", new JFunction { Fn = "ShowResult" }).Show();
}
/// <summary>
///Cancel Organization Maintain Hidden WindowNewOrganization
/// </summary>
[AjaxMethod]
public void do_Yes()
{
ClearOrganizationMaintainTextBox("");
WindowNewOrganization.Hidden = true;
}
[AjaxMethod]
public void do_No()
{
ClearOrganizationMaintainTextBox("");
WindowNewOrganization.Hidden = false;
return;
}
private void ClearOrganizationMaintainTextBox(string result)
{
this.TextFielOrganizationCode.Text = result;
this.TextFielOrganizationName.Text = result;
this.TextFieldOrganizationFullName.Text = result;
this.TextFieldEnglishName.Text = result;
this.TextFieldChineseName.Text = result;
this.TextFieldJapaneseName.Text = result;
this.TextFieldLegalEntityCode.Text = result;
BindComboxBu();
BindComboBoxSite();
}
#endregion
#region --------------组织机构树删除--------------
[AjaxMethod]
public void DoConfirm()
{
// Manually configure Handler...
//Ext.Msg.Confirm("Message", "Confirm?", "if(buttonId == 'yes') { CompanyX.DoYes(); } else { CompanyX.DoNo(); }").Show();
// Configure individualock Buttons using a ButtonsConfig...
DC_Resorganization resOrgEntity = new DC_Resorganization();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (resOrgEntity == null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
Ext.Msg.Confirm("Tips", "Are you sure want to delete?", new MessageBox.ButtonsConfig
{
Yes = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteYes();delNode(#{TreePanelOrganization});",
Text = "Yes"
},
No = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteNo()",
Text = "No"
}
}).Show();
}
}
[AjaxMethod]
public void DeleteYes()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
//组织结构树删除
DC_Resorganization resOrgEntity = new DC_Resorganization();
DC_OperationType operationtype = new DC_OperationType();
MSG_OrganizationMaintainRequest requst = new MSG_OrganizationMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
requst.OperationType = operationtype;
//resOrgEntity.OrganizationCode = Node_id.Trim();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
requst.OrganizationEntity = resOrgEntity;
client.OrganizationMaintain(requst);
//RES_Organization Resorganization = context.RES_Organization.FirstOrDefault(cc => cc.organization_code == Node_id);
//context.DeleteObject(Resorganization);
//context.SaveChanges();
}
}
[AjaxMethod]
public void DeleteNo()
{
return;
}
[AjaxMethod]
public void DoDeleteRoleConfirm()
{
DC_Resorganization resOrgEntity = new DC_Resorganization();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (resOrgEntity != null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
Ext.Msg.Confirm("Tips", "Are you sure want to delete?", new MessageBox.ButtonsConfig
{
Yes = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteRoleYes();delNode(#{TreePanelOrganization});",
Text = "Yes"
},
No = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteNo()",
Text = "No"
}
}).Show();
}
}
[AjaxMethod]
public void DeleteRoleYes()
{
if (string.Compare(Role_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (string.Compare(Role_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (string.Compare(org_RoleID, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
//组织结构树删除
// DC_OrgRoleOrg orgroleEntity = new DC_OrgRoleOrg();
DC_OperationType operationtype = new DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request = new MSG_OrgRoleOrgMainTainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
request.OperationType = operationtype;
request.orgrole_id = Role_id;
request.organization_id = org_RoleID;
client.OrgRoleOrgMaintain(request);
}
}
#endregion--=
#region ---------组织机构树添加跟修改操作---------
[AjaxMethod]
public void OrganizationNew()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
this.WindowNewOrganization.Title = "New Organization";
this.WindowNewOrganization.Icon = Icon.GroupAdd;
this.ButtonSave.Text = "New";
flag = "New";
ClearOrganizationMaintainTextBox("");
TextFieldParentOrgCode.FieldLabel = "ParentOrganization Code";
TextFielOrganizationCode.AllowBlank = false;
TextFielOrganizationCode.Hidden = false;
TextFieldParentOrgCode.Text = Node_id.Trim();
BindComboxBu();
BindComboBoxSite();
this.WindowNewOrganization.Show();
}
}
[AjaxMethod]
public void ButtonEditOG_Click()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
this.WindowNewOrganization.Title = "Edit Organization";
this.WindowNewOrganization.Icon = Icon.GroupEdit;
this.ButtonSave.Text = "Save";
flag = "Save";
this.WindowNewOrganization.Show();
BindComboBoxSite();
BindComboxBu();
DC_Resorganization organizationEntity = new DC_Resorganization();
MSG_GetOrganizationEntityRequest request = new MSG_GetOrganizationEntityRequest();
TextFieldParentOrgCode.Text = Node_id.Trim();
organizationEntity = client.GetOrganizationEntity(Node_id.Trim());
TextFielOrganizationName.Text = organizationEntity.OrganizationName;
TextFieldOrganizationFullName.Text = organizationEntity.OrganizationFullName;
TextFieldEnglishName.Text = organizationEntity.EnglishName;
TextFieldChineseName.Text = organizationEntity.ChineseName;
TextFieldJapaneseName.Text = organizationEntity.JapaneseName;
TextFieldLegalEntityCode.Text = organizationEntity.LegalentityCode;
ComboBoxBu.SelectedItem.Value = organizationEntity.BuID;
ComboBoxSite.SelectedItem.Value = organizationEntity.SiteID;
HiddenOrganizationID.Value = organizationEntity.OrganizationID;
TextFieldParentOrgCode.FieldLabel = "Organization Code";
TextFielOrganizationCode.AllowBlank = true;
TextFielOrganizationCode.Hidden = true;
//TextFielOrganizationCode.Text = organizationEntity.OrganizationCode.Substring(2, organizationEntity.OrganizationCode.Length);
}
}
public void Save(object sender, AjaxEventArgs e)
{
try
{
MaintainOrganization();
}
catch (Exception ex)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = ex.Message,
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
}
/// <summary>
/// 组织角色添加与修改
/// </summary>
public void MaintainOrganization()
{
try
{
DC_Resorganization resorganization = new DC_Resorganization();
DC_OperationType operationType = new DC_OperationType();
MSG_OrganizationMaintainRequest request = new MSG_OrganizationMaintainRequest();
if (string.Compare(flag, "New") == 0)
{
if (TextFielOrganizationCode.Text.Trim().Length % 2 != 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please input a valid OrganizationCode.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
else if (string.Compare(TextFieldParentOrgCode.Text.Trim(), "") > 0 && string.Compare(TextFielOrganizationCode.Text.Trim(), "") > 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim());
if (orgEntity != null)
{
Ext.Msg.Alert("Tips", "Message: The " + TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim() + "has exists,Please retype a valid code.").Show();
return;
}
}
else if (string.Compare(TextFieldOrganizationFullName.Text.Trim(), "") > 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim());
if (orgEntity != null)
{
if (string.Compare(orgEntity.OrganizationFullName, TextFieldOrganizationFullName.Text.Trim()) == 0)
{
Ext.Msg.Alert("Tips", "Message: The " + orgEntity.OrganizationFullName + "has exists,Please retype a valid full name.").Show();
return;
}
}
}
else if (TextFielOrganizationCode.Text.Length > 2)
{
Ext.Msg.Alert("Tips", "Message:The OrganizationCode's length could not greater than two.").Show();
return;
}
operationType.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationType;
resorganization.OrganizationCode = TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim();
resorganization.ChineseName = TextFieldChineseName.Text.Trim();
resorganization.EnglishName = TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName = TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode = TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName = TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid = "HR";
resorganization.OrganizationName = TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted = 0;
resorganization.LastModifiedTime = DateTime.Now;
resorganization.OrganizationID = Convert.ToString(Guid.NewGuid());
resorganization.BuID = ComboBoxBu.SelectedItem.Value;
resorganization.SiteID = ComboBoxSite.SelectedItem.Value;
request.OrganizationEntity = resorganization;
client.OrganizationMaintain(request);
}
else if (string.Compare(flag, "Save") == 0)
{
operationType.DCE_OperationType = DCE_OperationType.Update;
request.OperationType = operationType;
resorganization.OrganizationCode = TextFieldParentOrgCode.Text.Trim();
resorganization.ChineseName = TextFieldChineseName.Text.Trim();
resorganization.EnglishName = TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName = TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode = TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName = TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid = "HR";
resorganization.OrganizationName = TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted = 0;
resorganization.LastModifiedTime = DateTime.Now;
resorganization.BuID = ComboBoxBu.SelectedItem.Value;
resorganization.SiteID = ComboBoxSite.SelectedItem.Value;
resorganization.OrganizationID = HiddenOrganizationID.Value.ToString();
request.OrganizationEntity = resorganization;
client.OrganizationMaintain(request);
}
string JsFunction = "refreshTree(#{TreePanelOrganization})";
//string JsFunction = "alert('dd');";
//string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
WindowNewOrganization.Hide();
}
catch (Exception ex)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = ex.Message,
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
}
#endregion
/// <summary>
/// 刷新树 Json 获取
/// </summary>
/// <returns></returns>
[AjaxMethod]
public string RefreshMenu()
{
Coolite.Ext.Web.TreeNodeCollection nodes = LoadTree(this.TreePanelOrganization.Root);
return nodes.ToJson();
}
#region ----------Bu/Site 绑定----------------
public void BindComboxBu()
{
DCC_ResBuList bulist = client.GetBuList("");
StoreBu.DataSource = bulist.ToArray();
StoreBu.DataBind();
//StoreBu.DataSource = OrgData.GetBu("", context);
//StoreBu.DataBind();
}
public void BindComboBoxSite()
{
// StoreSite.DataSource = OrgData.GetSite("", context);
StoreSite.DataSource = client.GetSiteList("");
StoreSite.DataBind();
}
#endregion
#region OrgRole Bind && New Role
/// <summary>
/// Bind Role GridPanel
/// </summary>
private void RoleGridPanelBind()
{
if (client.GetOrgRoleList("").ToList() != null)
{
StoreRoleList.DataSource = client.GetOrgRoleList("");
StoreRoleList.DataBind();
}
}
[AjaxMethod]
public void ButtonNewRole_Click()
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(org_RoleID);
if (string.Compare(Role_id, "") == 0)
{
//Ext.Msg.Show(new MessageBox.Config
//{
// Title = "Tips",
// Message = "Please choose a role.",
// Buttons = MessageBox.Button.OK,
// Icon = MessageBox.Icon.INFO,
// AnimEl = this.ButtonSave.ClientID
//});
//return;
this.WindowNewRole.Show();
RoleGridPanelBind();
}
else if (string.Compare(Role_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (orgEntity != null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (orgEntity == null)
{
this.WindowNewRole.Show();
RoleGridPanelBind();
}
}
public void ButtonRoleListSelect_Click(object sender, AjaxEventArgs e)
{
string json = e.ExtraParams["Values"];
bool addHeader = true;
DataTable dt = new DataTable();
StringBuilder sbstr = new StringBuilder();
Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader = false;
ArrayList list = new ArrayList();
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dr[keyValuePair.Key] = keyValuePair.Value;
if (dr["orgrole_id"] == dr[keyValuePair.Key])
{
sbstr.Append(keyValuePair.Value + ";");
}
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > 0)
{
try
{
DC_OperationType operationtype = new DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request = new MSG_OrgRoleOrgMainTainRequest();
request.orgrole_id = sbstr.ToString();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
request.organization_id = Node_id;
client.OrgRoleOrgMaintain(request);
string JsFunction = "refreshTree(#{TreePanelOrganization})";
//string JsFunction = "alert('dd');";
//string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
this.WindowNewRole.Hide();
}
catch (Exception ex)
{
Ext.Msg.Alert("错误", "Message: " + ex.Message + ";").Show();
}
}
}
#endregion
#endregion
}
}
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
//New Reference
using Coolite.Ext.Web;
using System.Collections.Generic;
using PMS.Web.Admin.OrganizationService;
using System.Text;
namespace PMS.Web.Admin.Department
{
public partial class DepartmentListMaintain : PMS.Web.Base.PageBase
{
// PMS_ConnectionString context = new PMS_ConnectionString();
//web service 实例化
OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
Hashtable table = new Hashtable();
//操作状态的标示
static string flag = "New";
/// <summary>
/// Load Data
/// Init Page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack && !Ext.IsAjaxRequest)
{
//组织机构与组织人员、组织角色与组织人员的加载
GridPanelBind("", "");
//LoadTree();
//组织机构树的加载,返回Json
string temp = RefreshMenu();
//site列表加载
BindComboBoxSite();
//bu列表加载
BindComboxBu();
this.NavigationChildFunction = "Organization Maintain";
}
if (string.Compare(TextFieldNode.Text.Trim(), "") != 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (orgEntity != null)
{
Node_id = TextFieldNode.Text;
Role_id = "";
org_RoleID = TextFieldParentNode.Text;
}
else
{
Role_id = TextFieldNode.Text;
Node_id = "";
org_RoleID = TextFieldParentNode.Text;
}
}
}
//获取树节点ID
public string Node_id
{
get
{
object TreeNodeId = this.ViewState["TreeNodeId"];
return TreeNodeId == null ? string.Empty : (string)TreeNodeId;
}
set
{
this.ViewState["TreeNodeId"] = value;
}
}
public string Role_id
{
get
{
object RoleID = this.ViewState["RoleID"];
return RoleID == null ? string.Empty : (string)RoleID;
}
set
{
this.ViewState["RoleID"] = value;
}
}
public string org_RoleID
{
get
{
object org_RoleID = this.ViewState["org_RoleID"];
return org_RoleID == null ? string.Empty : (string)org_RoleID;
}
set
{
this.ViewState["org_RoleID"] = value;
}
}
#region ----------递归加载树-----------
/// <summary>
/// 组织角色的加载
/// </summary>
/// <param name="OrganizationID">组织部门的code</param>
/// <param name="node">组织部门node</param>
private void LoadOrgRoleByOrganizationID(string OrganizationID, Coolite.Ext.Web.TreeNode node)
{
MSG_GetOrgRoleOrgListRequest request = new MSG_GetOrgRoleOrgListRequest();
request.organizationid = OrganizationID;
request.orgrole_id = "";
DCC_OrgRoleList orgRoleList = client.GetOrgRoleOrgList(request);
foreach (var orgrole in orgRoleList.ToList())
{
Coolite.Ext.Web.TreeNode rolenode = new Coolite.Ext.Web.TreeNode();
rolenode.NodeID = orgrole.orgrole_id;
rolenode.Text = orgrole.orgrole_name;
rolenode.Qtip = orgrole.orgrole_desc;
rolenode.Expanded = true;
node.Nodes.Add(rolenode);
}
}
private void LoadTree()
{
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode("Hisoft", "Hisoft", Icon.Group);
node.Qtip = "Hisoft";
TreePanelOrganization.Root.Add(node);
node.Expanded = true;
//client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
DCC_ResorganizationList organizationlist = client.GetOrganizationList("");
foreach (var superCode in organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
string parentcode = superCode.OrganizationCode;
supernode.NodeID = superCode.OrganizationCode;
supernode.Text = superCode.OrganizationName;
supernode.Qtip = superCode.OrganizationFullName;
supernode.Cls = superCode.OrganizationID;
supernode.Icon = Icon.GroupKey;
node.Expanded = true;
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
//IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//foreach (var superCode in OrgSuperDepartment)
//{
// Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
// supernode.NodeID = superCode.organization_code;
// supernode.Text = superCode.organization_name;
// supernode.Qtip = superCode.organization_full_name;
// supernode.Icon = Icon.GroupKey;
// node.Nodes.Add(supernode);
// CreateCycleTree(supernode.NodeID, supernode);
//}
}
/// <summary>
/// 组织机构、组织角色树的加载 //WCF entity framework 方法
/// </summary>
/// <param name="nodes"></param>
/// <returns>TreeNodeCollection</returns>
private Coolite.Ext.Web.TreeNodeCollection LoadTree(Coolite.Ext.Web.TreeNodeCollection nodes)
{
if (nodes == null)
{
nodes = new Coolite.Ext.Web.TreeNodeCollection();
}//根节点为null时
TreePanelOrganization.Root.Clear();
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode("Hisoft", "Hisoft", Icon.Group);
node.Qtip = "Hisoft";
nodes.Add(node);
node.Expanded = true;
// OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
// client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
//所有父节点的加载
DCC_ResorganizationList organizationlist = client.GetOrganizationList("");
foreach (var superCode in organizationlist.ToList())
{
Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
string parentcode = superCode.OrganizationCode;
supernode.NodeID = superCode.OrganizationCode;
supernode.Text = superCode.OrganizationName;
supernode.Qtip = superCode.OrganizationFullName;
supernode.Cls = superCode.OrganizationID;
//supernode.Expanded = true;
supernode.Icon = Icon.GroupKey;
//supernode.CustomAttributes.Add(new ConfigItem(
node.Nodes.Add(supernode);
LoadOrgRoleByOrganizationID(superCode.OrganizationID, supernode);
CreateCycleTree(parentcode, supernode);
}
return nodes;
//linq to sql class 方法
//IList<RES_Organization> OrgSuperDepartment = OrgData.GetCycleOrganization("", context);
//foreach (var superCode in OrgSuperDepartment)
//{
// Coolite.Ext.Web.TreeNode supernode = new Coolite.Ext.Web.TreeNode();
// supernode.NodeID = superCode.organization_code;
// supernode.Text = superCode.organization_name;
// supernode.Qtip = superCode.organization_full_name;
// supernode.Icon = Icon.GroupKey;
// node.Nodes.Add(supernode);
// CreateCycleTree(supernode.NodeID, supernode);
//}
}
/// <summary>
/// 递归加载树
/// </summary>
/// <param name="code">父节点的code</param>
/// <param name="parentcode">父节点</param>
private void CreateCycleTree(string code, Coolite.Ext.Web.TreeNode parentcode)
{
// OrganizationService.OrganizationServiceClient client = new PMS.Web.Admin.OrganizationService.OrganizationServiceClient();
//根据父节点的ID得到该节点下的所有子节点
DCC_ResorganizationList orgDepartment = client.GetOrganizationList(code);
// IList<RES_Organization> orgDepartment = OrgData.GetCycleOrganization(code, context);
foreach (var org in orgDepartment.ToList())
{
Coolite.Ext.Web.TreeNode node = new Coolite.Ext.Web.TreeNode();
string orgparentcode = org.OrganizationCode;
node.NodeID = org.OrganizationCode;
node.Text = org.OrganizationName;
node.Qtip = org.OrganizationFullName;
node.Cls = org.OrganizationID;
node.Icon = Icon.GroupGo;
parentcode.Nodes.Add(node);
LoadOrgRoleByOrganizationID(org.OrganizationID, node);
CreateCycleTree(orgparentcode, node);
}
}
#endregion
/// <summary>
/// Bind GridPanel
/// </summary>
private void GridPanelBind(string employeeno, string employeename)
{
MSG_GetOrganizationEntityRequest request = new MSG_GetOrganizationEntityRequest();
DC_Resorganization organizationEntity = new DC_Resorganization();
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
if (string.Compare(TextFieldNode.Text, "") != 0)
{
if (string.Compare(TextFieldNode.Text, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please input query condition.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSearch.ClientID
});
return;
}
organizationEntity = client.GetOrganizationEntity(TextFieldNode.Text);
//organizationEntity 为null ,则是组织角色与组织人员
if (organizationEntity == null)
{
string JsFunction = "getNode(#{TreePanelOrganization})";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
hremployeelistrequest.DepartmentID = TextFieldParentNode.Text;
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = TextFieldNode.Text;
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
else
{
hremployeelistrequest.DepartmentID = TextFieldNode.Text;
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}//组织部门与组织人员
}
}
#region -----右键菜单-----
[AjaxMethod]
public void CMenuMaintain(string id,string flag)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(id);
if(string.Compare(flag,"New")==0)
{
if (id == "Hisoft")
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization or a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
});
return;
}
else
{
if (orgEntity == null)
{
ButtonNewRole_Click();
}
else
{
Node_id = id;
TextFieldNode.Text = id;
OrganizationNew();
}
}
}
else if(string.Compare(flag,"Edit")==0)
{
if (orgEntity == null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
});
return;
}
else
{
Node_id = id;
ButtonEditOG_Click();
}
}
else if (string.Compare(flag, "Delete") == 0)
{
if (orgEntity == null)
{
DoDeleteRoleConfirm();
}
else
{
DoConfirm();
}
}
}
#endregion
#region ---------查询操作-------
/// <summary>
/// Query
/// Condition:EmployeeNo EmployeeName
/// </summary>
[AjaxMethod]
public void ButtonSearch_Click()
{
if (TextFieldSNO.Text.Trim() == "" && TextFieldSName.Text.Trim() == "")
{
GridPanelBind("", "");
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = Node_id;
hremployeelistrequest.EmployeeName = TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
private void HrEmployeeBind()
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = "hremployee";
hremployeelistrequest.EmployeeName = "";
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = "";
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreHrEmployee.DataSource = hremployeelist.ToList();
StoreHrEmployee.DataBind();
}
}
#region ----------添加用户操作-------
protected void ButtonNewUser_Click(object sender, AjaxEventArgs e)
{
WindowNewHremployee.Show();
HrEmployeeBind();
}
public void ButtonhrEmployeeSelect_Click(object sender, AjaxEventArgs e)
{
RowSelectionModel sm = this.GridPanelNewhremployee.SelectionModel.Primary as RowSelectionModel;
string json = e.ExtraParams["Values"];
bool addHeader = true;
DataTable dt = new DataTable();
StringBuilder strstring = new StringBuilder();
Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader = false;
ArrayList list = new ArrayList();
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dr[keyValuePair.Key] = keyValuePair.Value;
if (keyValuePair.Key == "user_id")
{
strstring.Append(keyValuePair.Value + ";");
}
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
DC_Resorganization resorgEntity = client.GetOrganizationEntity(TextFieldNode.Text);
if (resorgEntity != null)
{
DC_HREmployee hrEmployee = new DC_HREmployee();
DC_OperationType operationtype = new DC_OperationType();
MSG_HREmployeeMaintainRequest request = new MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
hrEmployee.user_id = dr["user_id"].ToString();
hrEmployee.employee_no = dr["employee_no"].ToString();
hrEmployee.department_id = Node_id;
request.HREmployeeEntity = hrEmployee;
client.HREmployeeMaintain(request);
}
else
{
MSG_UserOrgRoleMaintainRequest request=new MSG_UserOrgRoleMaintainRequest();
DC_OperationType operationtype = new DC_OperationType();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
request.orgrole_id = TextFieldNode.Text;
request.user_id = strstring.ToString();
client.UserOrgRoleMaintain(request);
break;
}
}
this.WindowNewHremployee.Hide();
GridPanelBind("", "");
}
}
#endregion
#region
/// <summary>
/// Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void my_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
GridPanelBind("", "");
}
/// <summary>
/// Role List Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Rolelist_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
RoleGridPanelBind();
}
/// <summary>
/// User List Refresh Data
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Userlist_RefreshData(object sender, StoreRefreshDataEventArgs e)
{
if (TextFieldSNO.Text.Trim() == "" && TextFieldSName.Text.Trim() == "")
{
GridPanelBind("", "");
}
else
{
MSG_GetHREmployeeListRequest hremployeelistrequest = new MSG_GetHREmployeeListRequest();
hremployeelistrequest.DepartmentID = Node_id;
hremployeelistrequest.EmployeeName = TextFieldSName.Text.Trim();
hremployeelistrequest.OrgRoleID = "";
hremployeelistrequest.EmployeeNo = TextFieldSNO.Text.Trim();
DCC_HREmployeeList hremployeelist = client.GetHREmployeeList(hremployeelistrequest);
if (hremployeelist != null)
{
StoreUser.DataSource = hremployeelist.ToList();
StoreUser.DataBind();
}
}
}
#endregion
/// <summary>
/// GridPanel Command
/// </summary>
/// <param name="command"></param>
/// <param name="id"></param>
[AjaxMethod]
public void GridPanelUser_Command(string command, string userid, string employeeno)
{
if (command == "Delete")
{
DC_HREmployee hrEmployee = new DC_HREmployee();
DC_OperationType operationtype = new DC_OperationType();
MSG_HREmployeeMaintainRequest request = new MSG_HREmployeeMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
request.OperationType = operationtype;
hrEmployee.user_id = userid;
hrEmployee.employee_no = employeeno;
request.HREmployeeEntity = hrEmployee;
client.HREmployeeMaintain(request);
GridPanelBind("", "");
}
}
#region 组织机构树维护
/// <summary>
/// 得到点击的树节点的ID
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void getNode(object sender, AjaxEventArgs e)
{
if (string.Compare(TextFieldNode.Text.Trim(), "Hisoft") != 0)
{
string JsFunction = "getNode(#{TreePanelOrganization})";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
// GridPanelBind("", "");
if (string.Compare(TextFieldNode.Text.Trim(), "") != 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (orgEntity != null)
{
Node_id = TextFieldNode.Text;
GridPanelBind("", "");
Role_id = "";
}
else
{
Role_id = TextFieldNode.Text;
GridPanelBind("", "");
Node_id = "";
}
}
}
}
[AjaxMethod]
public void GetNode(string id)
{
TextFieldParentNode.Text = id;
//string JsFunction = "alert('"+id+"');";
//Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
//sm.AddScript(string.Format("{0};", JsFunction));
}
#region ----------Cancel Organization Maintain-------
/// <summary>
///Cancel Organization Maintain
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ButtonCancel_Click(object sender, AjaxEventArgs e)
{
Ext.Msg.Confirm("Tips", "Are you sure want to cancel ?", new JFunction { Fn = "ShowResult" }).Show();
}
/// <summary>
///Cancel Organization Maintain Hidden WindowNewOrganization
/// </summary>
[AjaxMethod]
public void do_Yes()
{
ClearOrganizationMaintainTextBox("");
WindowNewOrganization.Hidden = true;
}
[AjaxMethod]
public void do_No()
{
ClearOrganizationMaintainTextBox("");
WindowNewOrganization.Hidden = false;
return;
}
private void ClearOrganizationMaintainTextBox(string result)
{
this.TextFielOrganizationCode.Text = result;
this.TextFielOrganizationName.Text = result;
this.TextFieldOrganizationFullName.Text = result;
this.TextFieldEnglishName.Text = result;
this.TextFieldChineseName.Text = result;
this.TextFieldJapaneseName.Text = result;
this.TextFieldLegalEntityCode.Text = result;
BindComboxBu();
BindComboBoxSite();
}
#endregion
#region --------------组织机构树删除--------------
[AjaxMethod]
public void DoConfirm()
{
// Manually configure Handler...
//Ext.Msg.Confirm("Message", "Confirm?", "if(buttonId == 'yes') { CompanyX.DoYes(); } else { CompanyX.DoNo(); }").Show();
// Configure individualock Buttons using a ButtonsConfig...
DC_Resorganization resOrgEntity = new DC_Resorganization();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (resOrgEntity == null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
Ext.Msg.Confirm("Tips", "Are you sure want to delete?", new MessageBox.ButtonsConfig
{
Yes = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteYes();delNode(#{TreePanelOrganization});",
Text = "Yes"
},
No = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteNo()",
Text = "No"
}
}).Show();
}
}
[AjaxMethod]
public void DeleteYes()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
//组织结构树删除
DC_Resorganization resOrgEntity = new DC_Resorganization();
DC_OperationType operationtype = new DC_OperationType();
MSG_OrganizationMaintainRequest requst = new MSG_OrganizationMaintainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
requst.OperationType = operationtype;
//resOrgEntity.OrganizationCode = Node_id.Trim();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
requst.OrganizationEntity = resOrgEntity;
client.OrganizationMaintain(requst);
//RES_Organization Resorganization = context.RES_Organization.FirstOrDefault(cc => cc.organization_code == Node_id);
//context.DeleteObject(Resorganization);
//context.SaveChanges();
}
}
[AjaxMethod]
public void DeleteNo()
{
return;
}
[AjaxMethod]
public void DoDeleteRoleConfirm()
{
DC_Resorganization resOrgEntity = new DC_Resorganization();
resOrgEntity = client.GetOrganizationEntity(TextFieldNode.Text.Trim());
if (resOrgEntity != null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
Ext.Msg.Confirm("Tips", "Are you sure want to delete?", new MessageBox.ButtonsConfig
{
Yes = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteRoleYes();delNode(#{TreePanelOrganization});",
Text = "Yes"
},
No = new MessageBox.ButtonConfig
{
Handler = "Coolite.AjaxMethods.DeleteNo()",
Text = "No"
}
}).Show();
}
}
[AjaxMethod]
public void DeleteRoleYes()
{
if (string.Compare(Role_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (string.Compare(Role_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (string.Compare(org_RoleID, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid role.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
//组织结构树删除
// DC_OrgRoleOrg orgroleEntity = new DC_OrgRoleOrg();
DC_OperationType operationtype = new DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request = new MSG_OrgRoleOrgMainTainRequest();
operationtype.DCE_OperationType = DCE_OperationType.Delete;
request.OperationType = operationtype;
request.orgrole_id = Role_id;
request.organization_id = org_RoleID;
client.OrgRoleOrgMaintain(request);
}
}
#endregion--=
#region ---------组织机构树添加跟修改操作---------
[AjaxMethod]
public void OrganizationNew()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
this.WindowNewOrganization.Title = "New Organization";
this.WindowNewOrganization.Icon = Icon.GroupAdd;
this.ButtonSave.Text = "New";
flag = "New";
ClearOrganizationMaintainTextBox("");
TextFieldParentOrgCode.FieldLabel = "ParentOrganization Code";
TextFielOrganizationCode.AllowBlank = false;
TextFielOrganizationCode.Hidden = false;
TextFieldParentOrgCode.Text = Node_id.Trim();
BindComboxBu();
BindComboBoxSite();
this.WindowNewOrganization.Show();
}
}
[AjaxMethod]
public void ButtonEditOG_Click()
{
if (string.Compare(Node_id, "") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
if (string.Compare(Node_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else
{
this.WindowNewOrganization.Title = "Edit Organization";
this.WindowNewOrganization.Icon = Icon.GroupEdit;
this.ButtonSave.Text = "Save";
flag = "Save";
this.WindowNewOrganization.Show();
BindComboBoxSite();
BindComboxBu();
DC_Resorganization organizationEntity = new DC_Resorganization();
MSG_GetOrganizationEntityRequest request = new MSG_GetOrganizationEntityRequest();
TextFieldParentOrgCode.Text = Node_id.Trim();
organizationEntity = client.GetOrganizationEntity(Node_id.Trim());
TextFielOrganizationName.Text = organizationEntity.OrganizationName;
TextFieldOrganizationFullName.Text = organizationEntity.OrganizationFullName;
TextFieldEnglishName.Text = organizationEntity.EnglishName;
TextFieldChineseName.Text = organizationEntity.ChineseName;
TextFieldJapaneseName.Text = organizationEntity.JapaneseName;
TextFieldLegalEntityCode.Text = organizationEntity.LegalentityCode;
ComboBoxBu.SelectedItem.Value = organizationEntity.BuID;
ComboBoxSite.SelectedItem.Value = organizationEntity.SiteID;
HiddenOrganizationID.Value = organizationEntity.OrganizationID;
TextFieldParentOrgCode.FieldLabel = "Organization Code";
TextFielOrganizationCode.AllowBlank = true;
TextFielOrganizationCode.Hidden = true;
//TextFielOrganizationCode.Text = organizationEntity.OrganizationCode.Substring(2, organizationEntity.OrganizationCode.Length);
}
}
public void Save(object sender, AjaxEventArgs e)
{
try
{
MaintainOrganization();
}
catch (Exception ex)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = ex.Message,
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
}
/// <summary>
/// 组织角色添加与修改
/// </summary>
public void MaintainOrganization()
{
try
{
DC_Resorganization resorganization = new DC_Resorganization();
DC_OperationType operationType = new DC_OperationType();
MSG_OrganizationMaintainRequest request = new MSG_OrganizationMaintainRequest();
if (string.Compare(flag, "New") == 0)
{
if (TextFielOrganizationCode.Text.Trim().Length % 2 != 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please input a valid OrganizationCode.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
else if (string.Compare(TextFieldParentOrgCode.Text.Trim(), "") > 0 && string.Compare(TextFielOrganizationCode.Text.Trim(), "") > 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim());
if (orgEntity != null)
{
Ext.Msg.Alert("Tips", "Message: The " + TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim() + "has exists,Please retype a valid code.").Show();
return;
}
}
else if (string.Compare(TextFieldOrganizationFullName.Text.Trim(), "") > 0)
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim());
if (orgEntity != null)
{
if (string.Compare(orgEntity.OrganizationFullName, TextFieldOrganizationFullName.Text.Trim()) == 0)
{
Ext.Msg.Alert("Tips", "Message: The " + orgEntity.OrganizationFullName + "has exists,Please retype a valid full name.").Show();
return;
}
}
}
else if (TextFielOrganizationCode.Text.Length > 2)
{
Ext.Msg.Alert("Tips", "Message:The OrganizationCode's length could not greater than two.").Show();
return;
}
operationType.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationType;
resorganization.OrganizationCode = TextFieldParentOrgCode.Text.Trim() + TextFielOrganizationCode.Text.Trim();
resorganization.ChineseName = TextFieldChineseName.Text.Trim();
resorganization.EnglishName = TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName = TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode = TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName = TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid = "HR";
resorganization.OrganizationName = TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted = 0;
resorganization.LastModifiedTime = DateTime.Now;
resorganization.OrganizationID = Convert.ToString(Guid.NewGuid());
resorganization.BuID = ComboBoxBu.SelectedItem.Value;
resorganization.SiteID = ComboBoxSite.SelectedItem.Value;
request.OrganizationEntity = resorganization;
client.OrganizationMaintain(request);
}
else if (string.Compare(flag, "Save") == 0)
{
operationType.DCE_OperationType = DCE_OperationType.Update;
request.OperationType = operationType;
resorganization.OrganizationCode = TextFieldParentOrgCode.Text.Trim();
resorganization.ChineseName = TextFieldChineseName.Text.Trim();
resorganization.EnglishName = TextFieldEnglishName.Text.Trim();
resorganization.JapaneseName = TextFieldJapaneseName.Text.Trim();
resorganization.LegalentityCode = TextFieldLegalEntityCode.Text.Trim();
resorganization.OrganizationFullName = TextFieldOrganizationFullName.Text.Trim();
resorganization.OrganizationTypeCatid = "HR";
resorganization.OrganizationName = TextFielOrganizationName.Text.Trim();
resorganization.IsDeleted = 0;
resorganization.LastModifiedTime = DateTime.Now;
resorganization.BuID = ComboBoxBu.SelectedItem.Value;
resorganization.SiteID = ComboBoxSite.SelectedItem.Value;
resorganization.OrganizationID = HiddenOrganizationID.Value.ToString();
request.OrganizationEntity = resorganization;
client.OrganizationMaintain(request);
}
string JsFunction = "refreshTree(#{TreePanelOrganization})";
//string JsFunction = "alert('dd');";
//string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
WindowNewOrganization.Hide();
}
catch (Exception ex)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = ex.Message,
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonNewOG.ClientID
});
return;
}
}
#endregion
/// <summary>
/// 刷新树 Json 获取
/// </summary>
/// <returns></returns>
[AjaxMethod]
public string RefreshMenu()
{
Coolite.Ext.Web.TreeNodeCollection nodes = LoadTree(this.TreePanelOrganization.Root);
return nodes.ToJson();
}
#region ----------Bu/Site 绑定----------------
public void BindComboxBu()
{
DCC_ResBuList bulist = client.GetBuList("");
StoreBu.DataSource = bulist.ToArray();
StoreBu.DataBind();
//StoreBu.DataSource = OrgData.GetBu("", context);
//StoreBu.DataBind();
}
public void BindComboBoxSite()
{
// StoreSite.DataSource = OrgData.GetSite("", context);
StoreSite.DataSource = client.GetSiteList("");
StoreSite.DataBind();
}
#endregion
#region OrgRole Bind && New Role
/// <summary>
/// Bind Role GridPanel
/// </summary>
private void RoleGridPanelBind()
{
if (client.GetOrgRoleList("").ToList() != null)
{
StoreRoleList.DataSource = client.GetOrgRoleList("");
StoreRoleList.DataBind();
}
}
[AjaxMethod]
public void ButtonNewRole_Click()
{
DC_Resorganization orgEntity = client.GetOrganizationEntity(org_RoleID);
if (string.Compare(Role_id, "") == 0)
{
//Ext.Msg.Show(new MessageBox.Config
//{
// Title = "Tips",
// Message = "Please choose a role.",
// Buttons = MessageBox.Button.OK,
// Icon = MessageBox.Icon.INFO,
// AnimEl = this.ButtonSave.ClientID
//});
//return;
this.WindowNewRole.Show();
RoleGridPanelBind();
}
else if (string.Compare(Role_id, "Hisoft") == 0)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a valid organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (orgEntity != null)
{
Ext.Msg.Show(new MessageBox.Config
{
Title = "Tips",
Message = "Please choose a organization.",
Buttons = MessageBox.Button.OK,
Icon = MessageBox.Icon.INFO,
AnimEl = this.ButtonSave.ClientID
});
return;
}
else if (orgEntity == null)
{
this.WindowNewRole.Show();
RoleGridPanelBind();
}
}
public void ButtonRoleListSelect_Click(object sender, AjaxEventArgs e)
{
string json = e.ExtraParams["Values"];
bool addHeader = true;
DataTable dt = new DataTable();
StringBuilder sbstr = new StringBuilder();
Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dt.Columns.Add(keyValuePair.Key);
}
}
addHeader = false;
ArrayList list = new ArrayList();
DataRow dr = dt.NewRow();
foreach (KeyValuePair<string, string> keyValuePair in row)
{
dr[keyValuePair.Key] = keyValuePair.Value;
if (dr["orgrole_id"] == dr[keyValuePair.Key])
{
sbstr.Append(keyValuePair.Value + ";");
}
}
dt.Rows.Add(dr);
}
if (dt.Rows.Count > 0)
{
try
{
DC_OperationType operationtype = new DC_OperationType();
MSG_OrgRoleOrgMainTainRequest request = new MSG_OrgRoleOrgMainTainRequest();
request.orgrole_id = sbstr.ToString();
operationtype.DCE_OperationType = DCE_OperationType.Add;
request.OperationType = operationtype;
request.organization_id = Node_id;
client.OrgRoleOrgMaintain(request);
string JsFunction = "refreshTree(#{TreePanelOrganization})";
//string JsFunction = "alert('dd');";
//string JsFunction = "refreshTree()";
Coolite.Ext.Web.ScriptManager sm = Coolite.Ext.Web.ScriptManager.GetInstance(HttpContext.Current);
sm.AddScript(string.Format("{0};", JsFunction));
this.WindowNewRole.Hide();
}
catch (Exception ex)
{
Ext.Msg.Alert("错误", "Message: " + ex.Message + ";").Show();
}
}
}
#endregion
#endregion
}
}