MasterPage中使用TreeView右鍵菜單

Aspx:

<%@ 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">&nbsp;</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

posted @ 2008-02-21 17:04  马建康  阅读(670)  评论(0)    收藏  举报