前台代码和效果图:
<body>
<form id="form1" runat="server">
<table border="1" cellpadding="0" cellspacing="0" style="text-align: center;" width="100%"
bgcolor="#d4ddee">
<tr>
<td>
<table style=" width:100%;">
<tr>
<td style=" width:30%; height: 500px;" align="left" valign="top">
<asp:TreeView ID="tv_type" runat="server" ShowLines="True"
onselectednodechanged="tv_type_SelectedNodeChanged">
<SelectedNodeStyle BackColor="#69A1DA" />
</asp:TreeView></td>
<td style=" width:70%; height: 500px;" align="left" valign="top">
<table width="100%" style="line-height: 35px">
<tr><td colspan="2" align="right">
<asp:Label ID="lblvalue" runat="server" Visible="False"></asp:Label>
<asp:Label ID="lbltype" runat="server" Visible="False"></asp:Label>
<asp:Button ID="BtnAdd" runat="server" Text="添 加"
OnClick="BtnAdd_Click" CssClass="sub_bg" />
<asp:Button ID="Btnupdate" runat="server" Text="修 改"
OnClick="Btnupdate_Click" CssClass="sub_bg" Enabled="False" />
<asp:Button ID="Btnsave" runat="server" Text="保 存"
OnClick="Btnsave_Click" CssClass="sub_bg" Enabled="False" />
<asp:Button ID="Btndelete" runat="server" Text="删 除"
OnClick="Btndelete_Click" CssClass="sub_bg" Enabled="False" />
<asp:Button ID="Btncancel" runat="server" Text="撤 销"
OnClick="Btncancel_Click" CssClass="sub_bg" Enabled="False" />
</td></tr>
<tr><td align="right">类型名称:</td>
<td align="left">
<asp:TextBox ID="txtcodename" runat="server" Width="204px"></asp:TextBox>
</td>
</tr>
</table></td></tr>
</table>
</td>
</tr>
</table>
</form>
</body>
后台代码:
HHE_SubjectTypeBLL tbll = new HHE_SubjectTypeBLL();
HHE_ListenTaskMainBLL bll = new HHE_ListenTaskMainBLL();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
txtcodename.Enabled = false;
InitTree(tv_type.Nodes, 0);
}
}
//绑定类型
private void InitTree(TreeNodeCollection Nds, int parentid)
{
TreeNode tmpNd = null;
DataTable dt = bll.Select("select id,codename from HHE_SubjectType where fid=" + parentid);
foreach (DataRow drv in dt.Rows)
{
tmpNd = new TreeNode();
tmpNd.Text = drv["codename"].ToString(); ;//节点名称
tmpNd.Value = drv["id"].ToString();
if (parentid == 0)
tmpNd.Expanded = true;
else
tmpNd.Expanded = false;
Nds.Add(tmpNd);
InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
}
}
//添加
protected void BtnAdd_Click(object sender, EventArgs e)
{
Btnupdate.Enabled = false;
Btndelete.Enabled = false;
txtcodename.Enabled = true;
Btncancel.Enabled = true;
BtnAdd.Enabled = false;
txtcodename.Text = "";
Btnsave.Enabled = true;
lbltype.Text = "add";
//Response.Write("<script>alert('" + tv_type.SelectedNode.Value + "')</script>");
}
//修改
protected void Btnupdate_Click(object sender, EventArgs e)
{
if (lblvalue.Text == "")
{
Response.Write("<script>alert('请选择一个类型进行修改!')</script>");
return;
}
lbltype.Text = "update";
txtcodename.Enabled = true;
txtcodename.Text = tv_type.SelectedNode.Text;
BtnAdd.Enabled = false;
Btndelete.Enabled = false;
Btnsave.Enabled = true;
Btnupdate.Enabled = false;
Btncancel.Enabled = true;
}
//选中类型
protected void tv_type_SelectedNodeChanged(object sender, EventArgs e)
{
txtcodename.Enabled = false;
BtnAdd.Enabled = true;
Btnupdate.Enabled = true;
Btndelete.Enabled = true;
Btncancel.Enabled = true;
lblvalue.Text = tv_type.SelectedNode.Value;
}
//保存
protected void Btnsave_Click(object sender, EventArgs e)
{
if (lbltype.Text == "")
{
Response.Write("<script>alert('操作不正确,请确定添加还是修改!')</script>");
return;
}
if(txtcodename.Text.Trim()=="")
{
Response.Write("<script>alert('请填写类型名称!')</script>");
txtcodename.Focus();
return;
}
//添加
if (lbltype.Text == "add")
{
string fid = "";
if (lblvalue.Text == "")
{
fid = "0";
}
else
{
fid = lblvalue.Text;
}
if (tbll.AddSubjectType(fid, txtcodename.Text))
{
Response.Write("<script>alert('添加成功!')</script>");
tv_type.Nodes.Clear();
InitTree(tv_type.Nodes, 0);
Btncancel_Click(sender, e);
}
else
{
Response.Write("<script>alert('添加失败!')</script>");
}
}
//修改
if (lbltype.Text == "update")
{
if (tbll.UpdateSubjectType(lblvalue.Text, txtcodename.Text))
{
Response.Write("<script>alert('数据修改成功!')</script>");
tv_type.Nodes.Clear();
InitTree(tv_type.Nodes, 0);
Btncancel_Click(sender, e);
}
else
{
Response.Write("<script>alert('数据修改失败!')</script>");
}
}
}
//删除
protected void Btndelete_Click(object sender, EventArgs e)
{
if (lblvalue.Text == "")
{
Response.Write("<script>alert('请选择一个类型进行删除!')</script>");
return;
}
if (tbll.DeleteSubjectType(lblvalue.Text))
{
Response.Write("<script>alert('数据删除成功!')</script>");
tv_type.Nodes.Clear();
InitTree(tv_type.Nodes, 0);
Btncancel_Click(sender, e);
}
else
{
Response.Write("<script>alert('数据删除失败!')</script>");
}
}
//撤销
protected void Btncancel_Click(object sender, EventArgs e)
{
lbltype.Text = "";
lblvalue.Text = "";
tv_type.Nodes.Clear();
InitTree(tv_type.Nodes, 0);
txtcodename.Enabled = false;
BtnAdd.Enabled = true;
Btnupdate.Enabled = false;
Btndelete.Enabled = false;
Btnsave.Enabled = false;
Btncancel.Enabled = false;
txtcodename.Text = "";
}
数据库表字段:
相关方法:
/// <summary>
/// 查询
/// </summary>
/// <param name="sql">SQL命令</param>
/// <returns>DataTable</returns>
public DataTable Select(string sql)
{
return DBService.ExecuteGetDataTable(CommandType.Text, sql, null);
}
添加
public bool AddSubjectType(string fid,string codename)
{
string sql = "insert into HHE_SubjectType values(@fid,@codename)";
SqlParameter[] param ={
new SqlParameter("@fid",fid),
new SqlParameter("@codename",codename)
};
if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
{
return true;
}
else
{
return false;
}
}
修改
public bool UpdateSubjectType(string id,string codename)
{
string sql = "update HHE_SubjectType set codename=@codename where id=@id";
SqlParameter[] param ={
new SqlParameter("@codename",codename),
new SqlParameter("@id",id)
};
if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
{
return true;
}
else
{
return false;
}
}
删除
public bool DeleteSubjectType(string id)
{
string sql = "delete from HHE_SubjectType where id=@id";
SqlParameter param = new SqlParameter("@id", id);
if (DBService.ExecuteNonQuery(CommandType.Text, sql, param) > 0)
{
return true;
}
else
{
return false;
}
}