zoukankan      html  css  js  c++  java
  • 如何不使用让menu控件不回发(postback)

    写网站首页程序的导航,要用asp.net2.0 的下menu控件,因为绑定数据库十分方便,不过有个问题,就是我采用的iframe来跳转页面,不想整个首页都跳转,不过发现menu控件没有控制回发的属性,每单击就回发一次,挺麻烦的。后来想到一个曲折来实现的办法,在text属性上做文章,代码如下:

    index.aspx页面:

    .....

    <script language=javascript>

    function OpenNewWindow(strUrl)
    {
        document.all.UrlRedirect.src = strUrl;
    }

    </script>

    <asp:Menu ID="Menuindex" runat="server" Orientation="Horizontal"   >
            </asp:Menu>

    ....

    <iframe id ="UrlRedirect" name="UrlRedirect"></iframe>

    .....

    index.aspx.cs

    ......

    protected void Page_Load(object sender, EventArgs e)
        {       
            InitNavigationTree(Menuindex.Items, "0");       
        }

        private void InitNavigationTree(MenuItemCollection menuItemCollection, string sParentID)
        {

            DataView dvw = new DataView();

            MenuItem nodTemp;   

            dvw.Table = getDataAll("select  * from F_menu  where F_PARENTMENUGUID='"+sParentID +"' order by F_ORDER");
            foreach (DataRowView drv in dvw)
            {

                nodTemp = new MenuItem();
                nodTemp.Value = drv["F_MENUGUID"].ToString();
                nodTemp.Text = GetMenuText(drv["F_LINKPAGE"].ToString(),drv["F_MENUNAME"].ToString()) ;
                menuItemCollection.Add(nodTemp);          
                InitNavigationTree(nodTemp.ChildItems, nodTemp.Value);
            }

        }

        private string GetMenuText(string linkTxt,string nameTxt)
        {
            string temp = "<a style='cursor:hand' onclick=OpenNewWindow('" + linkTxt + "')>" + nameTxt + "</a>";
            return temp;
        }

    ..........

    这样menu就不回发了,而只会调用菜单文本上的那个onclick事件。

    注:getDataAll 方法是获得菜单表数据的方法,在此省略了

  • 相关阅读:
    详解package-lock.json的作用
    Cisco计网实验配置总结
    使用Vue制作了一个计算机网络中子网划分部分的简陋计算工具
    Prettier-Code Formater代码格式化插件使用教程
    Node.js中npx命令的使用方法、场景
    从几道题目带你深入理解Event Loop_宏队列_微队列
    简单模拟实现javascript中的call、apply、bind方法
    git使用说明书
    使用闭包模拟实现AMD模块化规范
    if执行后else if即使满足条件也不再执行
  • 原文地址:https://www.cnblogs.com/xjb/p/953294.html
Copyright © 2011-2022 走看看