修改 在我更新最新的代码后,现在我看到有两个“字符数”而不是只显示一个。 这是否意味着它执行两次相同的代码? document.ready和add_endrequest?
$('[id*="txtNewComments"]').charCount({
allowed: 300,
warning: 15,
counterText: 'Characters left: '
});
我正在使用带有updatepanel和一些jquery的asp.net页面,当我开始使用updatepanel时,我的jquery和javascript函数停止工作,我没有看到任何动作......在我搜索后我发现了这个:jQuery $(document).ready and UpdatePanels?链接是非常翔实的,但我有一个问题。
如果我有更新面板,下面的代码不起作用......
$(document).ready(function() {
$('[id*="txtNewComments"]').charCount({
allowed: 300,
warning: 15,
counterText: 'Characters left: '
});
..........
..........
});
//update:
function UpdateEmployee(....) {}
所以,如果我按照推荐的方式继续,那么我必须有两套每个脚本,一个在docuement.ready中,而另一组脚本在endRequest
中有一些像这样的东西如果我遵循这种模式,则下面正在使用更新面板。
$(document).ready(function() {
// bind your jQuery events here initially
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
// re-bind your jQuery events here
});
我的问题是:有没有办法在document.ready中设置一套脚本而不是另一套脚本?还有另一种在endrequest中吗?...维护两组脚本很痛苦。
有什么想法吗?
使用更新面板进行更新
<asp:ScriptManager runat="server" />
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Repeater runat="server" ID="Repeater1" OnItemCommand="OnItemCommand" OnItemDataBound="OnItemDataBound">
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<th></th>
<th>First Name</th>
<th>Last Name</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:ImageButton ID="Edit" ImageUrl="~/Images/EditDocument.png" runat="server" CommandName="edit" />
<asp:ImageButton ID="Delete" ImageUrl="~/Images/Delete_black_32x32.png" runat="server"
CommandName="delete" />
</td>
<td>
<asp:Label runat="server" ID="firstName"><%# Eval("FirstName") %></asp:Label>
<asp:PlaceHolder runat="server" ID="firstNameEditPlaceholder" />
<input type="hidden" runat="server" id="firstNameHidden" visible="false" />
</td>
<td>
<asp:Label runat="server" ID="lastName"><%# Eval("LastName") %></asp:Label>
<asp:PlaceHolder runat="server" ID="lastNameEditPlaceholder" />
<input type="hidden" runat="server" id="lastNameHidden" visible="false" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr>
<td>
<asp:ImageButton ID="Delete" ImageUrl="~/Images/112_Plus_Blue_32x32_72.png" runat="server"
OnClick="OnAddRecord" />
</td>
<td><asp:TextBox runat="server" ID="NewFirstName" /></td>
<td><asp:TextBox runat="server" ID="NewLastName" /></td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
答案 0 :(得分:2)
试试这个:
$(document).ready(function() {
bindJqueryFeatures();
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
bindJqueryFeatures();
});
function bindJqueryFeatures(){
//bind your jQuery events here initially
}
现在,如果您想更改或添加一些jQuery功能,只需在 bindJqueryFeatures()函数中插入代码,这样您就不需要在两种方法中共享代码: $(document ).ready()和 prm.add_endRequest()。
这就是你需要的吗?