我在使用网站上的UpdatePanel时遇到了主要问题。问题是,当我使用ScriptManager时,一旦更新面板回传,所有客户端JavaScript在页面最初加载时都处于活动状态。ASP.Net ScriptManager和UpdatePanel在回发时忽略javascript
这里就是我试图做...
我在同一页上的一些.NET压延控制每个自己的更新面板内。日历最初是隐藏的,直到您在关联的文本框中单击(也位于更新面板中),此时日历弹出,您可以选择日期。他们的日历工作很好,直到您实际更改日期(回发),之后当您在文本框中单击时,日历不再弹出,“onfocus”JavaScript将丢失。
在Google上查看几个小时后,我可以通过向TextBox动态添加“onfocus”属性并在日历回发时向ScriptManager注册启动脚本,从而使事情半工半工。
例子:
TextBox1.Attributes.Add("onfocus", "document.getElementById('searchArrivalDateCalendarDiv').style.display = 'block';")
ScriptManager.RegisterStartupScript(Page, GetType(Page), "StopTxtClick", "$(document).ready(function(){$('.txtArrivalDate').click(function(event){event.stopPropagation(); $('div.searchArrivalDateCalendarDiv').show(); });});", True)
这似乎真的不切实际,尤其是当我介绍一个母版页。我将最终不得不重新注册许多启动脚本。
必须有一个更简单的方法?