javascript中母版页的表单标签中的访问控制 [英] access controls in form tag of master page in javascript

查看:49
本文介绍了javascript中母版页的表单标签中的访问控制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨..........

我正在尝试访问母版页中的菜单控件,该母版页使用javascript.嵌套在表单标签中的表格标签中,但是我无法获取菜单控件.我的代码为:

master.Master

hi..........

I am trying to access menu control in the master page which in placed in table tag which nested in form tag using javascript.but i am not able get my menu control. my code is given as:

master.Master

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">

    </asp:ContentPlaceHolder>
<script type="text/javascript" src="Scripts/PageHeader.js" ></script>
</head>
<body>
    <form id="form1" runat="server">
    <table width="100%" id="headertable" >
    <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>

    </tr>

    <tr >
        <td width="15%">
            <img src="Images/PageHeaderImage.jpg" width="100%" height="100%"/></td>
            <td width="85%" style="font-family: 'Comic Sans MS'; background-color: #C0C0C0;" colspan="3"><h1 align="center"  >PageHeader Control</h1></td>
    </tr>
    <tr  bgcolor="#999999">
       <td id="menuTd" runat="server"  align="left" width="50%" colspan="2">
           <asp:Menu ID="MenuCntrl" runat="server" Orientation="Horizontal" colspan="2" RenderingMode="Default" ForeColor="Black" StaticMenuItemStyle-BackColor="#993399" BackColor="#CC3300" ClientIDMode="Static">
           </asp:Menu>
       </td>
       <td id="modeTd" runat="server" align="right" width="50%"></td>

    </tr>

</table>

       <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>

    <input id="hdnMode" type="hidden" name="hdnMode" runat="server" clientidmode="Static" />
    </form>

</body>
</html>





javascript代码:





javascript code:

document.getElementById(''MenuCntrl'').disabled = true;





for (var i = 0; i < document.forms(0).elements.length; i++) {
        alert(document.forms(0).elements(i).id);


    }





我无法在特定条件下要禁用的javascript中找到此"





i am not able to find this "

MenuCntrl

".
提供Soln
thanx

" in javascript which i want to disabled on particular condition.
provide soln
thanx

推荐答案

thatraja的解决方案实际可行(找到并禁用了该元素),但没有得到所需的结果. ASP:Menu控件实际上不是一个控件.看一下生成的HTML,这是一个包含三个项目的菜单:

The solution of thatraja actually works (the element is found and is disabled), but you didn''t get the desired result. An ASP:Menu control is not really one control. Take a look at this generated HTML, a menu with three items:

<table id="ctl00_MenuCntrl" class="ctl00_MenuCntrl_2" colspan="2" renderingmode="Default" clientidmode="Static" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="ctl00_MenuCntrln0">
      <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
          <td style="white-space:nowrap;">
            <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" href="javascript:__doPostBack(''ctl00


MenuCntrl'',''New Item1'')">New Item1</a> </td> </tr> </table> </td> <td style="width:3px;"></td><td id="ctl00_MenuCntrln1"> <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td style="white-space:nowrap;"> <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" disabled="true">New Item2</a> </td> </tr> </table> </td> <td style="width:3px;"> </td> <td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="ctl00_MenuCntrln2"> <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td style="white-space:nowrap;"> <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" href="javascript:__doPostBack(''ctl00
MenuCntrl'',''New Item1'')">New Item1</a> </td> </tr> </table> </td> <td style="width:3px;"></td><td id="ctl00_MenuCntrln1"> <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td style="white-space:nowrap;"> <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" disabled="true">New Item2</a> </td> </tr> </table> </td> <td style="width:3px;"> </td> <td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(event)" id="ctl00_MenuCntrln2"> <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td style="white-space:nowrap;"> <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" href="javascript:__doPostBack(''ctl00


MenuCntrl'',''New Item3'')">New Item3</a> </td> </tr> </table> </td> </tr> </table>
MenuCntrl'',''New Item3'')">New Item3</a> </td> </tr> </table> </td> </tr> </table>



它实际上是一个表,具有一行和三个单元格.并且在每个单元格中都有另一张表,其中有一行和一个单元格.要禁用菜单,您需要禁用许多元素.您可能还必须删除onmouseover和onmouseout等事件以及javascript_postback.

现在看一下在控件中将菜单设置为禁用时所生成的代码(enabled = false).有些元素被禁用,没有事件,也没有javascript_postback.



It is actually a table, with a single row and three cells. And in each cell there is another table with one row and one cell. To disable the menu you need to disable a lot of elements. You also may have to remove the events like onmouseover and onmouseout and the javascript_postback.

Now take a look at the code that is generated when you set the menu as disabled in the control (enabled=false). Some elements are disabled and there are no events and no javascript_postback.

<table id="ctl00_MenuCntrl" disabled="disabled" class="ctl00_MenuCntrl_2" colspan="2" renderingmode="Default" clientidmode="Static" cellpadding="0" cellspacing="0" border="0">
  <tr>
    <td id="ctl00_MenuCntrln0">
      <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
          <td style="white-space:nowrap;">
            <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" disabled="true">New Item1</a>
          </td>
        </tr>
      </table>
    </td>
    <td style="width:3px;"></td><td id="ctl00_MenuCntrln1">
      <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
          <td style="white-space:nowrap;">
            <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" disabled="true">New Item2</a>
          </td>
        </tr>
      </table>
    </td>
    <td style="width:3px;"></td>
    <td id="ctl00_MenuCntrln2">
      <table class="ctl00_MenuCntrl_4" cellpadding="0" cellspacing="0" border="0" width="100%">
        <tr>
          <td style="white-space:nowrap;">
            <a class="ctl00_MenuCntrl_1 ctl00_MenuCntrl_3" disabled="true">New Item3</a>
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>



如何禁用菜单?您可以编写很多JavaScript并禁用正确的元素.但是请记住,浏览器是不同的. javascript解决方案可能不适用于所有浏览器.

我将采用这种解决方案:添加两个div,一次可见,包含一个启用和禁用的菜单.在这些菜单之间切换以启用/禁用菜单.



How to disable the menu? You can write a lot of javascript and disable the right elements. But keep in mind that browsers are different. The javascript solution may not work for every browser.

I would go for this solution: add two divs, one visible at a time, containing an enabled and a disabled menu. Toggle between those to enable / disable the menu.


这篇关于javascript中母版页的表单标签中的访问控制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆