【问题标题】:jQuery and ASP.NET Page loadjQuery 和 ASP.NET 页面加载
【发布时间】:2013-10-19 17:39:12
【问题描述】:

我使用 Web 控件测试 jQuery 和 ASP.NET,并且在我的测试中,如果我单击按钮,则每次都加载新的 Side。 jQuery 代码将 Css 类添加到标签。

我的aspx:

      <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="jQueryAnwendung.Main" %>

<!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>jQuery Anwendung</title>

    <script src="Scripte/jquery-1.8.0.min.js" type="text/javascript"></script>

    <style type="text/css">
        .CssKlasse 
        {
            background:red;
            font-size:40px; 
            }
    </style>

    <script type="text/javascript" language="javascript">

        $(document).ready(function () {
            $("#<%= b1.ClientID%>").click(function (event) {
                $("#<%= bild1.ClientID %>").slideToggle('slow');
            });

        });

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="b1" runat="server" text="Bild verkleinern/vergrößern"/>
        <asp:Image ID="bild1" runat="server" ImageUrl="~/Theme/net.png" Width="50" Height="50" /> 
    </div>
    </form>
</body>
</html>

我能做什么?

塔拉索夫

【问题讨论】:

  • 你想得到什么?如果您的按钮不应该向服务器发送帖子,请不要使用
  • 在toggle语句后添加return false

标签: c# jquery asp.net html pageload


【解决方案1】:

在您的处理程序中,阻止按钮正常运行:

$("#<%= b1.ClientID%>").click(function (event) {
  event.preventDefault(); //prevent the control to act in its default way
  $("#<%= bild1.ClientID %>").slideToggle('slow');
});

【讨论】:

    【解决方案2】:

    当您单击 Asp 按钮时会导致回发 - 页面重新加载并且您的脚本未执行,您可以改用 HTML 按钮或尝试禁用此按钮上的回发。

    【讨论】:

      【解决方案3】:

      如果你使用 asp 控件,你有两种方法来处理它

      首先是在你的 jQuery 函数中将 "#b1"#l1" 更改为 "&lt;%= #b1.ClientID%&gt;""&lt;%= #l1.ClientID %&gt;"

      第二个是将属性ClientIDMode="Static"添加到您的asp:Buttonasp:Label

      【讨论】:

      • 哪种方式行不通?编辑你的问题并展示你是如何做到的:)
      • 好的,我发现问题是您同时添加了两个解决方案。使用 1-st 或 second 不能同时使用;)
      【解决方案4】:

      生成的id更详细;打开您的浏览器并点击查看源代码。你会注意到它。复制 ID 并将其粘贴到您的 jQuery 选择器中。

      另一种方法是在.aspx 中调用b1.clientID$("&lt;%= b1.ClientID %&gt;"),这将在运行时输出生成的clientID

      从 ASP.NET 4 开始,StaticMode 允许您完全控制生成的 ID。欲了解更多信息,请查看:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多