MasterPage中使用TreeView右鍵菜單
<%@ Page Language="C#" MasterPageFile="Manage.master" AutoEventWireup="true" CodeFile="Products.aspx.cs" Inherits="Manage_Products" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript">
function ShowType(obj1,obj2,flag)
{
var panel=document.getElementById(obj1);
if(flag==0)
{
panel.style.display="none";
}
else
{
panel.style.display="block";
document.getElementById(obj2).focus();
}
//panel.style.dispaly='block';
}
var menuskin = "skin1";
var display_url = 1; // Show URLs in status bar?
function showmenuie5() {
if (event.srcElement.type != undefined)
{
var s = event.srcElement.id;
var ind = s.replace("TreeView1t", "");
s = s.replace("TreeView1t", "TreeView1n");
document.getElementById('one').url ="javascript:ShowType( document.getElementById('ppt').value, document.getElementById('tpt').value,1);"
//event.srcElement.href;
document.getElementById('one').innerText = "新增產品類別";
var ch = document.getElementById(s);
if (ch != null){
document.getElementById('two').url = "javascript:ShowType( document.getElementById('pp').value, document.getElementById('pn').value,1);"
document.getElementById('two').innerText = "新增產品";
}
else
document.getElementById('two').outerHTML="<div id=two class=menuitems url=''></div>"
if(ch!=null)
{
document.getElementById('three').url="javascript:document.getElementById('"+document.getElementById('btn').value+"').click();"
//"__doPostBack('"+document.getElementById('btn').value+"','')";
document.getElementById('three').innerHTML="刪除產品及類別";
}
else
document.getElementById('three').outerHTML ="<div id=three class=menuitems url=''></div>"
var rightedge = document.body.clientWidth-event.clientX;
var bottomedge = document.body.clientHeight-event.clientY;
if (rightedge < ie5menu.offsetWidth)
ie5menu.style.left = document.body.scrollLeft + event.clientX - ie5menu.offsetWidth;
else
ie5menu.style.left = document.body.scrollLeft + event.clientX;
if (bottomedge < ie5menu.offsetHeight)
ie5menu.style.top = document.body.scrollTop + event.clientY - ie5menu.offsetHeight;
else
ie5menu.style.top = document.body.scrollTop + event.clientY;
ie5menu.style.visibility = "visible";
}
else
{
ie5menu.style.visibility = "hidden";
}
return false;
}
function hidemenuie5() {
ie5menu.style.visibility = "hidden";
}
function highlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "highlight";
event.srcElement.style.color = "white";
if (display_url)
window.status = event.srcElement.url;
}
}
function lowlightie5() {
if (event.srcElement.className == "menuitems") {
event.srcElement.style.backgroundColor = "";
event.srcElement.style.color = "black";
window.status = "";
}
}
function jumptoie5() {
if (event.srcElement.className == "menuitems") {
if (event.srcElement.getAttribute("target") != null)
window.open(event.srcElement.url, event.srcElement.getAttribute("target"));
else
window.location = event.srcElement.url;
}
}
</script>
<div id="ie5menu" class="skin0" onmouseover="highlightie5()" onmouseout="lowlightie5()"
onclick="jumptoie5();">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
<td>
<div id="one" class="menuitems">新增產品類別</div>
</td>
</tr>
<tr>
<td><div id="two" class="menuitems">新增產品</div></td>
</tr>
<tr>
<td><div id="three" class="menuitems">刪除產品及類別</div></td>
</tr>
</table>
</div>
<table border="0" cellspacing="0" cellpadding="0" width="576">
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0" width="576">
<tr>
<td width="23"> </td>
<td align="left" valign="top">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="hidden" value="<% =tvProductTypes.ClientID %>" id="pt" name="pt" />
<input type="hidden" value="<% =pnlProductType.ClientID %>" id="ppt" name="ppt" />
<input type="hidden" value="<% =txtProductTypeName.ClientID %>" id="tpt" name="tpt" />
<input type="hidden" value="<% =pnlProduct.ClientID %>" id="pp" name="pp" />
<input type="hidden" value="<% =txtProductName.ClientID %>" id="pn" name="pn" />
<input type="hidden" value="<% =btnDel.ClientID %>" id="btn" name="btn" />
<Input type="button" style="display:none" value="新增產品類別" OnClick="ShowType('<% =pnlProductType.ClientID %>','<% =txtProductTypeName.ClientID %>',1);" id="btnProdType" class="grey" />
<input type="button" style="display:none" value="新增產品" onclick="ShowType('<% =pnlProduct.ClientID %>','<% =txtProductName.ClientID %>',1);" id="btnProd" class="grey" />
<asp:Button ID="btnDelete" runat="server" Text="刪除產品及類別" CssClass="grey" OnClick="btnDelete_Click" />
<input type="button" style="display:none" id="btnDel" runat="server" onserverclick="btnDelete_Click" />
</td>
</tr>
<tr>
<td valign="top">
<table border="0" cellspacing="0">
<tr>
<td width="400" valign="top">
<asp:TreeView ID="tvProductTypes" width="400" runat="server" ShowLines="True" OnSelectedNodeChanged="tvProductTypes_SelectedNodeChanged" ImageSet="XPFileExplorer" CssClass="grey">
</asp:TreeView>
</td>
<td valign="top">
<asp:Panel ID="pnlProductType" runat="server">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td>
<span class="grey">產品類別名稱:</span>
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtProductTypeName" runat="server" CssClass="grey"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Button ID="btnConfirmtype" runat="server" Text="確定" OnClick="btnConfirmtype_Click" CssClass="grey" />
<input type="button" value="取消" OnClick="ShowType('<% =pnlProductType.ClientID %>','<% =txtProductTypeName.ClientID %>',0);document.getElementById('<% =txtProductTypeName.ClientID %>').value='';" id="Button1" class="grey"/>
</td>
</tr>
</table>
</asp:Panel>
<asp:Panel ID="pnlProduct" runat="server">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td class="grey">產品類別名稱:</td>
</tr>
<tr>
<td><asp:TextBox ID="txtProdType" runat="server" ReadOnly="true" CssClass="grey"></asp:TextBox>
<asp:TextBox ID="txtProdParent" runat="server" CssClass="grey" />
</td>
</tr>
<tr>
<td style="height: 19px" class="grey">產品名稱:</td>
</tr>
<tr>
<td>
<asp:TextBox ID="txtProductName" runat="server" CssClass="grey" ></asp:TextBox>
</td>
</tr>
<tr>
<td><asp:Button ID="btnSure" runat="server" Text="確定" OnClick="btnSure_Click" CssClass="grey" />
<input type="button" value="取消" onclick="ShowType('<% =pnlProduct.ClientID %>','<% =txtProductName.ClientID %>',0);" class="grey" />
</td>
</tr>
</table>
</asp:Panel>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<script>
if (document.all) {
ie5menu.className = menuskin;
var obj = document.getElementById("pt").value;
var TreeView=document.getElementById(obj);
TreeView.oncontextmenu = showmenuie5;
// document.getElementById('tvProductTypes').oncontextmenu = showmenuie5;
document.body.onclick = hidemenuie5;
}
</script>
</asp:Content>
用到的C#:
#region 刪除產品及類別信息
protected void btnDelete_Click(object sender, EventArgs e)
{
DeleteProd();
}
protected void DeleteProd()
{
if (tvProductTypes.SelectedNode.Depth > 0)
{
string strcmd;
TreeNode tn = tvProductTypes.SelectedNode;
if (tn.Depth == 1)
{
if (tn.ChildNodes.Count > 0)
{
Msg("該產品類別下有產品信息,不能刪除!");
return;
}
else
{
strcmd = string.Format("Delete from AMA_ProductTypes where ProductTypeId={0}", tn.Value.ToString());
}
}
else
{
if (tn.ChildNodes.Count > 0)
{
Msg("該產品下還有子產品,不能刪除!");
return;
}
else
{
strcmd = string.Format("Delete from AMA_Products where ProductId={0}", tn.Value.ToString());
}
}
AMA.Library.DB.SQLDB amadb = new AMA.Library.DB.SQLDB(ConfigurationManager.ConnectionStrings["AMASQLServer"].ToString());
int rows = amadb.GetExecRows(strcmd);
if (rows > 0)
{
Msg("產品或產品類別刪除成功!");
AMA_Pub.BindProdTypes(this.tvProductTypes);
}
else
{
Msg("產品或產品類別刪除失敗,請檢查!");
}
}
}
#endregion