当前位置: 首页 > 面试题库 >

更新面板中的按钮正在执行完整的回发吗?

傅涵忍
2023-03-14
问题内容

我正在从此处(http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx)跟踪如何使用更新面板的简单示例。在更新面板之外,我还有另一个html输入控件,该控件调用一个javascript函数,该函数在警报框中向用户显示计数。简单的东西。我的问题是,在IIS和内置的asp.net
Web服务器(cassini)上运行时,页面的行为有所不同。在IIS下,单击更新面板中的按钮将导致完全回发,因此每次在js函数中显示给用户的计数都会被重置。在内置Web服务器下,单击“更新”面板内的按钮的行为与我期望的方式和希望的方式相同,因为它仅刷新标签,从而不会重置客户端的计数器。

.net 3.5是目标框架,并且我正在运行IIS 5.1。

我在其他地方看到过描述相同问题的帖子(http://forums.asp.net/t/1169282.aspx)

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>

    <script type="text/javascript">
    var count=0;
    function incrementCounter()
    {
        count ++;
        alert(count);
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Panel Created"></asp:Label>
            <asp:Button ID="Button1" runat="server" Text="Button"     onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>

    <input type="button" id="Button2" value="JS Clicker" onclick="incrementCounter();" />
    </form>
</body>
</html>

更新:

感谢Crossbrowser的回答。我的回复将在“添加评论”窗口中占用大量空间。好的,因此在此简单示例之后(http://www.asp.net/Ajax/Documentation/Live/tutorials/IntroductionUpdatePanel.aspx),您可以看到更新模式未设置为有条件的,因此我已经反映了这些更改。但是我的问题仍然存在。就是说,该页面在IIS上运行时会引起完整的回发。即浏览器中的进度条加载,屏幕闪烁,我正在维护的客户端计数丢失。不能在内置的asp.net网络服务器上运行代码。那是我问题的症结所在。其他人(http://forums.asp.net/t/1169282.aspx)遇到了这个问题。

所以我的问题是,与内置的asp.net相比,在IIS上运行时有什么不同?

更新的代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>

    <script type="text/javascript">
    var count=0;
    function incrementCounter()
    {
        count ++;
        alert(count);
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text="Panel Created"></asp:Label>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>

    <input type="button" id="Button2" value="JS Clicker" onclick="incrementCounter();" />
    </form>


</body>
</html>

问题答案:

由于您使用的是.NET Framework 3.5,因此我假设您使用的是Visual Studio 2008,并且您说的是针对生产平台的IIS 5.1。

属于Visual Studio 2008的本地Web服务器基于IIS
6/7体系结构,而不是IIS5。因此,回答您的问题是IIS与本地Web服务器相比有何不同…不幸的是,在此情况下,您正在混合苹果和橙子。

您是否受限于IIS 5.1?…,即客户端授权或其他原因。如果不是这样,并且您正在使用Visual Studio 2008(.NET Framework
3.5)进行开发,则实际上应该使用IIS7(或至少为6),因为您很可能不会遇到此问题。

同样,IIS7可能不是您的选择。



 类似资料:
  • 问题内容: 添加按钮具有事件OnClick =“ btn_Add_Click” 该事件未触发,当我单击添加按钮时,没有任何反应。而且,在我添加更新面板之前,“更新按钮”工作正常,现在只有“取消”按钮关闭了弹出窗口,而其他按钮在弹出窗口内无法正常工作如何触发事件。 问题答案: 将UpdatePanel的属性更改为。这将导致由UpdatePanel的子元素触发的任何回发更新其内容。 编辑 :刚刚意识到

  • 问题内容: 当我在“更新”面板中使用“按钮”时,它不会触发点击事件,但在更新面板之外,它可以工作。 这是代码 按钮的代码是 问题答案: 试试这个 集到和附加在

  • 我已经使用FullCalendar生成了一些事件。我想重新排列页眉中的按钮。 例如,“月”、“周”和“日”按钮应显示在第一行。标题应该放在prev和next按钮之间。如何实现这一点? 提前道谢。

  • 这是我HTML文件中的内容: 我希望按钮在Post类中执行一个方法。我不确定我是否使用了正确的Thymeleaf“标记”。现在,当页面加载时,它执行post-upvote和downvote方法。有人能帮忙吗?我觉得我用错了Thymeleaf标签。

  • 问题内容: 我有以下代码: 如您所见,我要在单击按钮时更改大小。可能吗?上面的代码不起作用,我的意思是大小没有改变。如何动态更改尺寸? 感谢致敬。编辑: 交换选择一个JList行的面板。 ViewPanel#changeView(),这将交换面板: 问题答案: 使用布局管理器时,永远不要使用setSize()。布局管理器的工作是确定大小。您可以通过设置指定的大小或最小或最大大小来向布局管理器提供提