【问题标题】:Prevent click event on menu item from reloading in asp.net防止菜单项上的单击事件在 asp.net 中重新加载
【发布时间】:2015-12-15 09:11:17
【问题描述】:

我正在使用带有子菜单项集合的 ASP 菜单控件。如果用户单击主菜单项,它会重新加载并且屏幕会进行回发。当点击主菜单时它会激怒用户,因为它只是列出类别。当用户单击主菜单项时如何防止页面加载我尝试了一些使用 javascript 的代码,但它不起作用。

我的 ASP 菜单控件:

<asp:Menu ID="mini" OnMenuItemClick="mini_MenuItemClick" runat="server" Orientation="Horizontal" >
    <Items>
        <asp:MenuItem Text="Items">
            <asp:MenuItem Text="sdaad" Value="1" >
                <asp:MenuItem Text="MenuSub1"  Value="MenuSub1" ></asp:MenuItem>
                <asp:MenuItem Text="MenuSub2" Value="MenuSub2" ></asp:MenuItem>
            </asp:MenuItem>
            <asp:MenuItem Text="qwerty" Value="qwerty">
                <asp:MenuItem Text="MenuSub" Value="MenuSub"></asp:MenuItem>
            </asp:MenuItem>
        </asp:MenuItem>
    </Items>
</asp:Menu>

Javascript 来处理这个问题:

function OnMenuItemClick(s, e) {
    if (e.item.name == "Items")
        e.processOnServer = false;
}

【问题讨论】:

  • 你可能想看看 asp:updatepanel
  • 你能简单解释一下吗

标签: javascript c# asp.net


【解决方案1】:

首先,将更新面板放入标记中

<asp:UpdatePanel runat="server" id="Update" UpdateModel="Conditional">
</UpdatePanel>

然后使用javascript触发它:

__doPostBack(<%# Update.ClientID%>, '');

【讨论】:

  • 我应该在哪里添加java脚本代码和更新控件。对不起,我是 asp.net 的新手
  • The control with ID 'Update' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.
  • 然后添加
  • 现在 javascript 代码不起作用&lt;script type="text/javascript"&gt; _doPostBack(&lt;%# Update.ClientID%&gt;, 'Items');&lt;/script&gt;
  • 现在我收到了这个错误The Controls collection cannot be modified because the control contains code blocks (i.e. &lt;% ... %&gt;).
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 2021-06-14
  • 2018-02-16
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多