因此,我阅读了相关问题,并得到了一些有趣的东西,但没有找到我的答案,至少没有理解答案。
一般而言,我对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/