</>code
- <ext:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
- <ext:SimpleForm ID="SimpleForm1" ShowBorder="false" ShowHeader="false" runat="server"
- BodyPadding="5px" EnableBackgroundColor="true" Title="SimpleForm">
- <Toolbars>
- <ext:Toolbar ID="Toolbar1" runat="server">
- <Items>
- <ext:Button ID="btnClose" SystemIcon="Close" EnablePostBack="false" runat="server"
- Text="关闭">
- </ext:Button>
- <ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
- </ext:ToolbarSeparator>
- <ext:Button ID="btnSaveClose" ValidateForms="SimpleForm1" SystemIcon="SaveClose"
- OnClick="btnSaveClose_Click" runat="server" Text="保存并关闭">
- </ext:Button>
- </Items>
- </ext:Toolbar>
- </Toolbars>
- <Items>
- <ext:TextBox ID="tbxName" runat="server" Label="名称" Required="true" ShowRedStar="true">
- </ext:TextBox>
- <ext:TextBox ID="tbxUrl" runat="server" Label="链接" Required="true" ShowRedStar="true">
- </ext:TextBox>
- <ext:CheckBox ID="cbxShow" runat="server" Label="显示">
- </ext:CheckBox>
- <ext:NumberBox ID="tbxSortIndex" Label="排序" Required="true" ShowRedStar="true" runat="server">
- </ext:NumberBox>
- <ext:DropDownList ID="ddlParentMenu" Label="父菜单" Required="true" ShowRedStar="true" runat="server">
- </ext:DropDownList>
- </Items>
- </ext:SimpleForm>
</>code
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- LoadData();
- }
- }
- private void LoadData()
- {
- btnClose.OnClientClick = ExtAspNet.ActiveWindow.GetConfirmFormModifiedClosePostBackReference();
- int menuId = GetQueryIntValue("id");
- XMenu menu = XMenu.FetchByID(menuId);
- if (menu == null)
- {
- // 参数错误,首先弹出Alert对话框然后关闭弹出窗口
- ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());
- return;
- }
- tbxName.Text = menu.Name;
- tbxUrl.Text = menu.NavigateUrl;
- tbxSortIndex.Text = menu.SortIndex.ToString();
- cbxShow.Checked = menu.Show;
- // 绑定下拉列表
- BindDDL(menu);
- }
</>code
- <ext:WindowField Text="编辑" WindowID="Window1" Title="编辑" DataIFrameUrlFields="Id"
- DataIFrameUrlFormatString="~/admin/menu_edit.aspx?id={0}" Width="50px" />
</>code
- protected string GetQueryValue(string queryKey)
- {
- return Request.QueryString[queryKey];
- }
- protected int GetQueryIntValue(string queryKey)
- {
- int queryIntValue = -1;
- try
- {
- queryIntValue = Convert.ToInt32(Request.QueryString[queryKey]);
- }
- catch (Exception)
- {
- // TODO
- }
- return queryIntValue;
- }
</>code
- XMenu menu = XMenu.FetchByID(menuId);
- if (menu == null)
- {
- // 参数错误,首先弹出Alert对话框然后关闭弹出窗口
- ExtAspNet.Alert.Show("参数错误!", String.Empty, ExtAspNet.ActiveWindow.GetCloseReference());
- return;
- }
</>code
- private void BindDDL(XMenu menu)
- {
- XMenuCollection menus = new Select().From<XMenu>()
- .OrderAsc(XMenu.SortIndexColumn.ColumnName)
- .ExecuteAsCollection<XMenuCollection>();
- List<MyMenu> newMenus = XMenuHelper.GetMyMenuCollection(menus);
- // 所有节点的TreeLevel加一,然后添加根节点
- foreach (MyMenu myMenu in newMenus)
- {
- myMenu.TreeLevel += 1;
- }
- MyMenu rootMenu = new MyMenu();
- rootMenu.Name = "==根节点==";
- rootMenu.Id = 0;
- rootMenu.TreeLevel = 0;
- newMenus.Insert(0, rootMenu);
- // 本节点不可点击(也就是说当前节点不可能是当前节点的父节点)
- // 并且本节点的所有子节点也不可点击,你想如果当前节点跑到子节点的子节点,那么这些子节点就从树上消失了
- bool startChileNode = false;
- int currentMenuTreeLevel = 0;
- foreach (MyMenu myMenu in newMenus)
- {
- if (myMenu.Id == menu.Id)
- {
- currentMenuTreeLevel = myMenu.TreeLevel;
- myMenu.Enabled = false;
- startChileNode = true;
- }
- else
- {
- if (startChileNode)
- {
- if (myMenu.TreeLevel > currentMenuTreeLevel)
- {
- myMenu.Enabled = false;
- }
- else
- {
- startChileNode = false;
- }
- }
- }
- }
- // 绑定到下拉列表(启用模拟树功能和不可选择项功能)
- ddlParentMenu.EnableSimulateTree = true;
- ddlParentMenu.DataTextField = "Name";
- ddlParentMenu.DataValueField = "Id";
- ddlParentMenu.DataSimulateTreeLevelField = "TreeLevel";
- ddlParentMenu.DataEnableSelectField = "Enabled";
- ddlParentMenu.DataSource = newMenus;
- ddlParentMenu.DataBind();
- // 选中当前节点的父节点
- ddlParentMenu.SelectedValue = menu.ParentMenuId.ToString();
- }
</>code
- protected void btnSaveClose_Click(object sender, EventArgs e)
- {
- int menuId = GetQueryIntValue("id");
- XMenu menu = XMenu.FetchByID(menuId);
- menu.Name = tbxName.Text.Trim();
- menu.NavigateUrl = tbxUrl.Text.Trim();
- menu.SortIndex = Convert.ToInt32(tbxSortIndex.Text.Trim());
- menu.Show = cbxShow.Checked;
- menu.ParentMenuId = Convert.ToInt32(ddlParentMenu.SelectedValue);
- menu.Save(User.Identity.Name);
- ExtAspNet.Alert.Show("保存成功!", String.Empty, ExtAspNet.ActiveWindow.GetClosePostBackReference());
- }
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛