62,074
社区成员
发帖
与我相关
我的任务
分享
北京
昌平
海淀
山东
济南
市中区
天桥区
潍坊
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Category.aspx.cs" Inherits="Files_Category" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../Style/net.css" type="text/css" rel="stylesheet" />
<script src="../JS/functions.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function GoClick() {
if (event.srcElement.tagName.toLowerCase() == "input") {
//alert(event.srcElement.nextSibling);
event.srcElement.nextSibling.click();
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:TreeView ID="tvCategory" runat="server" OnTreeNodeCheckChanged="tvCategory_TreeNodeCheckChanged"
ShowCheckBoxes="All" OnClick="javascript:GoClick();"
ImageSet="XPFileExplorer">
</asp:TreeView>
</div>
<div>
<asp:ImageButton ID="imgbtnEdit" runat="server" ImageUrl="~/Images/button/btn_Edit.gif"
CausesValidation="False" OnClick="imgbtnEdit_Click" />
<asp:ImageButton ID="imgbtnDel" runat="server" ImageUrl="~/Images/button/btn_Del.gif"
CausesValidation="False" onclick="imgbtnDel_Click" />
</div>
<div>
分类名称:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="必填项"
ControlToValidate="txtName" Display="Dynamic"></asp:RequiredFieldValidator>
分类编码:<asp:TextBox ID="txtCode" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="必填项"
ControlToValidate="txtCode" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:CheckBox ID="cbRoot" runat="server" Text="根节点" />
</div>
<div>
<asp:ImageButton ID="imgbtnSave" runat="server" ImageUrl="~/Images/button/btn_Save.gif"
OnClick="imgbtnSave_Click" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
正在处理......
</ProgressTemplate>
</asp:UpdateProgress>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TancCmsModels;
public partial class Files_Category : System.Web.UI.Page
{
DAOGTFileCategory dao = new DAOGTFileCategory();
GTFileCategory ins = null;
IList<GTFileCategory> list = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
imgbtnDel.Attributes.Add("onclick", "return confirm('确定要删除吗?');");
ViewState["Action"] = "add";
ViewState["Node"] = null;
this.BindTree();
}
}
private void BindTree()
{
tvCategory.Nodes.Clear();
list = dao.GetAllCategories();
IList<GTFileCategory> listTop = list.Where(m => m.ParentID == 0).OrderBy(m =>m.CName).ToList();
foreach (GTFileCategory c in listTop)
{
TreeNode node = new TreeNode();
node.Text = c.CName;//+ "(" + c.CCode + ")";
node.ToolTip = c.CCode;
node.Value = c.CCode + ";" + c.ID;
BindChild(node);
tvCategory.Nodes.Add(node);
}
tvCategory.ExpandAll();
}
private void BindChild(TreeNode parentNode)
{
IList<GTFileCategory> listChild = list.Where(m => m.ParentID == Int32.Parse(parentNode.Value.Split(';')[1])).OrderBy(m => m.CName).ToList();
foreach (GTFileCategory c in listChild)
{
TreeNode node = new TreeNode();
node.Text = c.CName; //+ "(" + c.CCode + ")";
node.ToolTip = c.CCode;
node.Value = c.CCode + ";" + c.ID;
BindChild(node);
parentNode.ChildNodes.Add(node);
}
}
protected void imgbtnSave_Click(object sender, ImageClickEventArgs e)
{
if (IsValid)
{
if (ViewState["Action"] != null)
{
String strName = txtName.Text.Trim();
String strCode = txtCode.Text.Trim();
if (ViewState["Action"].ToString() == "add")
{
#region
ins = new GTFileCategory();
ins.CName = strName;
ins.CCode = strCode;
if (cbRoot.Checked)
{
ins.ParentID = 0;
}
else
{
if (tvCategory.CheckedNodes.Count > 0)
{
ins.ParentID = Int32.Parse(tvCategory.CheckedNodes[0].Value.Split(';')[1]);
}
else
{
ScriptManager.RegisterStartupScript(
this, this.GetType(), "JSParentSel", "alert('请选择父节点!')", true);
return;
}
}
dao.Save(ins);
#endregion
}
if (ViewState["Action"].ToString() == "edit")
{
ins = dao.GetCategoryById(Int32.Parse(tvCategory.CheckedNodes[0].Value.Split(';')[1]))[0];
ins.CName = strName;
ins.CCode = strCode;
dao.Update(ins);
}
this.txtName.Text = this.txtCode.Text = "";
this.BindTree();
cbRoot.Enabled = true;
}
}
ViewState["Action"] = "add";
}
protected void imgbtnEdit_Click(object sender, ImageClickEventArgs e)
{
if (tvCategory.CheckedNodes.Count > 0)
{
ViewState["Action"] = "edit";
TreeNode node = tvCategory.CheckedNodes[0];
txtName.Text = node.Text;
txtCode.Text = node.Value.Split(';')[0];
cbRoot.Enabled = false;
}
else
{
ScriptManager.RegisterStartupScript(
this, this.GetType(), "JSEdit", "alert('请选择要修改的节点!')", true);
}
}
protected void tvCategory_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
for (int i = 0; i < tvCategory.CheckedNodes.Count;i++ )
{
if (tvCategory.CheckedNodes[i] != e.Node)
{
tvCategory.CheckedNodes[i].Checked = false;
}
}
}
protected void imgbtnDel_Click(object sender, ImageClickEventArgs e)
{
if (tvCategory.CheckedNodes.Count > 0)
{
TreeNode node = tvCategory.CheckedNodes[0];
Int32 ID = Int32.Parse(node.Value.Split(';')[1]);
dao.Delete(dao.GetCategoryById(ID)[0]);
this.BindTree();
}
else
{
ScriptManager.RegisterStartupScript(
this, this.GetType(), "JSDel", "alert('请选择要删除的节点!')", true);
}
}
}