因此,我阅读了相关问题,并得到了一些有趣的东西,但没有找到我的答案,至少没有理解答案。

一般而言,我对AJAX,JavaScript和sclient脚本非常陌生。

我已经使用C#asp.net了一段时间,最近又在我的侧面添加了一些updatepanels以使用户控件和位得以更新,从而不会每次都重新加载该页面。一切工作都很出色,我对它感到非常满意,直到我决定尝试使用一些JQuery。

我从ui.jquery.js中选择了日期选择器,它很酷,并且在普通页面上也很好用。当我从updatepanel内部执行回发时,我的问题就出现了。日期选择器只是停止工作。

从我阅读的内容来看,我需要在发回帖子后手动将其备份。

1)我不太明白为什么。在我的主页上,我有:

<script type="text/javascript">
    $(function() {
        $(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
    });
</script>

这将为我的输入框分配mydatepickerclass。和所有作品。为什么这会停止回发。

2)我该如何解决...。我如何将其连接起来,以便在更新面板中回发后仍能正常工作。

我知道ID可能会在回发时更改,但是我在使用类时不知道出了什么问题。

编辑

我的用户控件中有以下代码,其中发生了更新:
<asp:UpdatePanel ID="HistoryUpdatePanel" runat="server">
<ContentTemplate>
    <%-- Start of Company History section --%>
    <fieldset>
        <legend>Activity History</legend>

           <script type="text/javascript">
              $(function() {
              $(".mydatepickerclass").datepicker({dateFormat: 'dd-mm-yy'});
              });
           </script>

        <div>
            <asp:ListBox ID="listBoxHistoryTypes" runat="server" SelectionMode="Multiple" AutoPostBack="true" OnSelectedIndexChanged="listBoxHistoryTypes_IndexChanged" />
            <label>Date From:</label><asp:TextBox class="mydatepickerclass" ID="txtdatefrom" runat="server" />
            <label>Date To:</label><input class="mydatepickerclass" type="text" />
            <asp:TextBox class="mydatepickerclass" ID="txtdateto" runat="server" />
            <asp:Button ID="btnFilterSearch" runat="server" Text="Filter Results" OnClick="btnFilterSearch_Click" />
        </div>


    </fieldset>
</ContentTemplate>

updatepanel中的脚本是否不重新接线?

谢谢

乔恩·霍金斯

最佳答案

更新面板将重新加载html的内容。您必须侦听UpdatePanel才能完成并重新创建日期选择器。

这是一个非常基本的示例。这没有考虑页面上的多个更新面板,也没有考虑由于未正确破坏日期选择器而导致的潜在内存泄漏。

混合ASP.NET Ajax和jQuery时要注意的另一件事是,因为两者在不同的上下文中都使用$

<!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></title>
    <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.1.js">
    </script>
    <script type="text/javascript">
        $(document).ready(function() {
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

            function EndRequestHandler(sender, args) {
                $('.mydatepickerclass').datepicker({ dateFormat: 'dd-mm-yy' });
            }

        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server" CssClass="mydatepickerclass"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="UpdateMe"
                onclick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html>

关于c# - jQuery datepicker ms ajax updatepanel在回发后不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/520645/

10-12 12:20