Re[8]: Меню в UpdatePanel не исчезает после первого клика на
От: TheAteist  
Дата: 01.12.08 16:29
Оценка:
Здравствуйте, Koss87, Вы писали:

K>выложи полностью всю страницу аспх и цс, а также яваскрипты..


Во-первых хотел выразить тебе блогадарность за помощь

Я попытался присвоить event "onclick" в функции buildNodeContent так чтоб при нажатии на элементы меню(На "add child", на "update version", на "history") сработал alert,
но alert срабатывает только когда я нажимаю на Actions. Как же мне сделать?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Copy of Copy of CNV.aspx.cs" Inherits="CNV" %>
<%@ Import Namespace="System.Web.Services" %>

<%@ Register Assembly="System.Web.Extensions" Namespace="System.Web.UI" TagPrefix="asp" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>

<!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>Untitled Page</title>
    <link href="css/ModalDialogs.css" rel="stylesheet" type="text/css" />   
</head>
<body>    
    <form id="form1" runat="server">                
        <div>                   
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:Table ID="Table1" runat="server"  CellPadding="0" CellSpacing="0" style="vertical-align: top">
            </asp:Table>
            <asp:Panel ID="pnlNewElement" runat="server" CssClass="modalPopup" Width="300px" Height="230px" style="display:none; overflow:auto;" >
                <table>
                    <tr>
                        <td>
                        </td>
                        <td>
                            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
                        <td>
                            <asp:Label ID="lblElementName" runat="server" Text="name"></asp:Label></td>
                    </tr>
                    <tr>
                        <td>
                        </td>
                        <td>
                            <asp:DropDownList ID="ddlElementKind" runat="server" DataSourceID="SQLdsElementKind"
                                DataTextField="sName" DataValueField="Id">
                            </asp:DropDownList>
                        </td>
                        <td>
                            <asp:Label ID="txtElementKind" runat="server" Text="kind"></asp:Label></td>
                    </tr>
                    <tr>
                        <td>
                        </td>
                        <td>
                            <asp:TextBox ID="txtDescription" runat="server"></asp:TextBox></td>
                        <td>
                            <asp:Label ID="lblDescription" runat="server" Text="desciption"></asp:Label></td>
                    </tr>
                </table>
                <asp:Button ID="btnCancel" runat="server" Text="cancel" />
                <asp:SqlDataSource ID="SQLdsElementKind" runat="server" ConnectionString="<%$ ConnectionStrings:esek %>"
                    SelectCommand="SELECT [Id], [sName] FROM [vElementKind]"></asp:SqlDataSource>                    
            </asp:Panel>
            <asp:Button ID="btnHiddenShowNewElement" runat="server" Text="Button" />
            
            <asp:HiddenField ID="hfShowNewElement" runat="server" />
            
            <ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnHiddenShowNewElement" PopupControlID="pnlNewElement" BackgroundCssClass="modalBackground" DropShadow="true" CancelControlID="btnCancel" >
            </ajaxToolkit:ModalPopupExtender>
        </div>
    </form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class CNV : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {       
        BuildTree();
     
    }
    void BuildTree()
    {                
        DataTable dtTree;
        DataView dvTree;
        ArrayList alNode;
        ConfigurationTree _ConfigurationTree;

        Table1.Controls.Clear();
        _ConfigurationTree = new ConfigurationTree(Table1);

        if ((dtTree = _ConfigurationTree.GetTree(Request["ProjId"])) == null)
        {
            showError(_ConfigurationTree.ErrorDescription);
            return;
        }

        if (dtTree.Rows.Count > 0)
        {
            dvTree = new DataView(dtTree);

            //Get records with TreeLevel = i
            dvTree.RowFilter = "nTLevel=1";

            alNode = buildNodeContent((string)dvTree[0].Row["ElementName"], (string)dvTree[0].Row["ElementVersionName"]);
            
            //Add Label
            _ConfigurationTree.BaseNode.AddControl((Label)alNode[0]);
            //Add Menu
            _ConfigurationTree.BaseNode.AddControl((Menu)alNode[1]);
            _ConfigurationTree.BaseNode.AddToStyle("background-color", "blue");
            _ConfigurationTree.BaseNode.AddToStyle("text-align", "center");
            buildNode(dtTree, _ConfigurationTree.BaseNode, dvTree[0].Row["ElementId"].ToString());
        }
    }
    /// <summary>
    /// Build node recursively
    /// </summary>
    /// <param name="dtTree"></param>
    /// <param name="Node"></param>
    /// <param name="strFatherElementId"></param>
    void buildNode(DataTable dtTree, TreeDiagramNode Node, string strFatherElementId)
    {
        ArrayList alNode;
        TreeDiagramNode subNode;
        DataView dvTree = new DataView(dtTree);

        //Filter all element that belong to FatherElementId
        dvTree.RowFilter = "uFatherElement='" + strFatherElementId + "'";
       
        for (int i = 0; i < dvTree.Count; i++)
        {            
            alNode = buildNodeContent((string)dvTree[i].Row["ElementName"], (string)dvTree[i].Row["ElementVersionName"]);

            subNode = Node.CreateChildNode();
            
            subNode.AddControl((Label)alNode[0]);
            subNode.AddControl((Menu)alNode[1]);
            subNode.AddToStyle("background-color", "blue");
            subNode.AddToStyle("text-align", "center");
            
            buildNode(dtTree, subNode, dvTree[i].Row["ElementId"].ToString());
        }
        
    }
    ArrayList buildNodeContent(string ElementName, string strVersion)
    {
        Label _Label = new Label();
        Menu _Menu;
        MenuItem _MenuItem;
        ArrayList alNode;

        _Label.Font.Bold = true;
        _Label.Font.Name = "Malgun Gothic";
        _Label.ForeColor = System.Drawing.Color.Black;
        _Label.Text = ElementName + " " + strVersion;

        _Menu = new Menu();

        _Menu.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.DynamicHorizontalOffset = 2;
        _Menu.Font.Name = "Verdana";
        _Menu.Font.Size = 10;
        _Menu.ForeColor = System.Drawing.Color.Teal;
        _Menu.StaticSubMenuIndent = new Unit(10, UnitType.Pixel);
        _Menu.Style.Add("direction", "rtl");
        _Menu.Style.Add("text-align", "right");
        _Menu.StaticSelectedStyle.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.StaticMenuItemStyle.HorizontalPadding = new Unit(5, UnitType.Pixel);
        _Menu.StaticMenuItemStyle.VerticalPadding = new Unit(2, UnitType.Pixel);
        _Menu.DynamicHoverStyle.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.DynamicHoverStyle.ForeColor = System.Drawing.Color.White;
        _Menu.DynamicMenuStyle.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.DynamicSelectedStyle.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.DynamicMenuItemStyle.HorizontalPadding = new Unit(5, UnitType.Pixel);
        _Menu.StaticHoverStyle.BackColor = System.Drawing.Color.LightSteelBlue;
        _Menu.StaticHoverStyle.ForeColor = System.Drawing.Color.White;
        
        _Menu.Attributes["onclick"] = "alert(1); return false;";

        _MenuItem = new MenuItem("actions", "actions");

        _Menu.Items.Add(_MenuItem);

        _MenuItem.ChildItems.Add(new MenuItem("history", "history"));
        _MenuItem.ChildItems.Add(new MenuItem("update version", "version"));
        _MenuItem.ChildItems.Add(new MenuItem("add child", "child"));        
       
       
        alNode = new ArrayList();               

        alNode.Add(_Label);
        alNode.Add(_Menu);

        return alNode;
    }

    

    /// <summary>
    /// Alert if any error occurred
    /// </summary>
    /// <param name="strMessage"></param>
    void showError(string strMessage)
    {
        //When the message contains characters like apostrophe or newline and etc. the javascipt error is occurred
        //Therefore store this message in hiddenfiled(added firstly to form) and alert from it
        HiddenField hfError = new HiddenField();
        hfError.Value = strMessage;
        hfError.ID = "hfError";

        Form.Controls.Add(hfError);
        this.ClientScript.RegisterStartupScript(this.GetType(), "Error", "alert(document.getElementById('" + hfError.UniqueID + "').value);", true);
    }    
}


    df
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.