当我的 jQuery UI 日期选择器在初始页面加载时工作正常时,为什么它不能用于回发?

2024-04-11

我一直在尝试将 jQuery UI Datepicker 集成到我们的 ASP.NET WebForms 应用程序中。该应用程序使用母版页为所有页面提供共同的外观,并且所有内容页面都构建在 UpdatePanel 的 ContentTemplate 内。我创建了一个用户控件来包装日期选择器的功能,并允许在运行时为代码隐藏中的每个日期设置 minDate、maxDate、验证器等。我还需要处理 ASP.NET 生成客户端元素 ID 的方式。

在过去的一周里,我进行了广泛的搜索,发现了很多让它发挥作用的技巧。这是我现在所处位置的一个稍微简化的版本。

<asp:TextBox ID="txtTB" runat="server"
    MaxLength="10"
    CssClass="dateBox" />

<script type="text/javascript">

    // This function enables the datepicker behavior for this textbox by its ClientID.
    function <%=txtTB.ClientID %>() {
        $("#<%=txtTB.ClientID %>").datepicker({
            changeMonth: true, changeYear: true,
            showOn: 'button',
            buttonImage: "<%=Request.ApplicationPath %>/images/calendarIcon.gif",
            buttonImageOnly: true, buttonText: '', duration: '',
            onSelect: function() { }
        });
    };

    // Register the above function to execute on initial page load...
    $(document).ready(function(){ <%=txtTB.ClientID %>(); }) ;

    // ...and also after any update panel it's on has been refreshed. 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(<%=txtTB.ClientID %>);

</script>

我省略了验证器和其他一些我认为与该问题无关的标记,但这是用户控件的核心——文本框和启用日期选择器功能的 jQuery 脚本。基本思想是利用 ASP.NET 的客户端 ID 来:

  1. 为该特定控件的 JavaScript 函数提供唯一的函数名称
  2. 使用 jQuery 注册该函数以在初始页面后启用日期选择器 加载
  3. 向 ASP.NET 的 PageRequestManager 注册相同的函数,以在回发后保持启用日期选择器

第 1 项和第 2 项效果很好。但是,回发后,日期选择器功能丢失,只剩下一个文本框。

可是等等!那不是全部。给定页面由多个面板组成,一次只能看到其中一个面板。仅通过使当前面板的 Visible 属性为 true 来选择它们。所有其他面板的 Visible 属性均设置为 false。

现在得到这个:第一个面板上的日期选择器(在初始页面加载时显示的日期选择器)按预期工作。第二个面板上的那些就不会出现。返回第一页,日期选择器再次出现。

有人知道我哪里出错了吗?


虽然 $(document).ready() 非常适合一次性初始化例程,但如果您的代码需要在每次部分回发后重新运行,它会让您陷入困境。 jQuery v1.3+ 中添加的 LiveQuery 功能对此有所帮助,但仅适用于有限的功能集。

例如,如果我们想将 jQueryUI 日期选择器添加到前面示例中的 TextBox,该怎么办?将其添加到 $(document).ready() 中会很好用,until发生部分回发。然后,UpdatePanel 的新 TextBox 元素将不再连接日期选择器。

<script type="text/javascript">
  function pageLoad() {
    $('#TextBox1').unbind();
    $('#TextBox1').datepicker(); 
  }
</script>

<asp:ScriptManager runat="server" />

<asp:UpdatePanel runat="server">
  <ContentTemplate>
    <asp:Button runat="server" ID="Button1" />
    <asp:TextBox runat="server" ID="TextBox1" />
  </ContentTemplate>
</asp:UpdatePanel>

上述答案取自以下链接。我已经在我的一个项目中测试并实现了这一点。

http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/ http://encosia.com/2009/03/25/document-ready-and-pageload-are-not-the-same/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我的 jQuery UI 日期选择器在初始页面加载时工作正常时,为什么它不能用于回发? 的相关文章

  • idleTimeout 和 ShutdownTimeout 之间的区别

    我正在尝试放宽网站的会话过期策略 以便用户可以指定会话超时间隔 我需要弄清楚应该指定哪些网站相关设置 以免过多限制用户 例如 可能需要 1 天的间隔 我将使用门票来实现这一点 现在 我知道我可以在网站的 web config 文件中指定id
  • 使用 jquery 事件 keydown 模拟在文本区域上输入不起作用

    我正在尝试制作 Facebook 自动回复消息脚本 这是我的代码 window load function var a setInterval function var e titlebarText html if e else texta
  • 如果使用 jQuery 隐藏了 ASP:Button,我无法单击该按钮?

    我发现 StackOverFlow 答案和其他资源说您可以通过 jQuery 单击隐藏的 ASP Button click or trigger click 然而 这些都不适合我 除非按钮是 Visible true 这是按钮
  • 必填字段验证器在下拉列表回发时消失

    我在 asp net 中填充两个下拉列表 两者都分配给必填字段验证器 隐藏代码如下 if Page IsPostBack DataTable dt new DataTable dt Columns Add emp dt Columns Ad
  • 第一次点击时的 event.preventDefault() 然后删除

    如果它有一个类子导航 我会禁用默认锚点 如下所示这把小提琴 http jsfiddle net aaronk85 5Quee 我只希望在第一次单击时禁用此功能 然后我希望恢复正常的锚点功能 做这个的最好方式是什么 我尝试了涉及以下代码的操作
  • AJAX 表单正在向自身提交?

    我不知道今晚发生了什么 但我似乎无法让 AJAX 工作 提交表单后 它会使用 URL 中的值刷新页面 我正在使用具有提交处理程序的验证插件 但它仍然会刷新 我以前用过这个方法 没有出现任何问题 看看这里的页面 让我知道您的想法 div cl
  • Twitter 的推文按钮有回调吗?

    有没有办法在 Twitter 的推文按钮上注册回调 我希望能够跟踪我网站上的哪些特定用户在 Twitter 上发布了链接 我无法添加 onClick 事件 因为它是跨域 iFrame 还有其他想法吗 我见过一种方法 https stacko
  • Internet Explore 8 不会使用 .attr() 更改图像 src

    我设置了一个页面 当用户用鼠标或触控板滚动时 该页面将快速浏览一系列图像 我使用 jQuery 来测量距页面顶部的距离 scrollTop 然后更改 DOM 中特定 id 的图像源 这在 Firefox Chrome Safari Oper
  • 有没有办法在 jqgrid treeGrid url 请求中传回附加数据?

    i am 使用 jqgrid 树视图 http www trirand com jqgridwiki doku php id wiki 3atreegrid我正在传回 json 响应 效果很好 我想将一些有关请求的附加信息传递回 GUI 并
  • jQuery datepicker - 为什么主题样式不显示?

    我使用 jQuery 制作了一个日期选择器 如下所示
  • 无法在 Chrome 中获取对象的真实高度/宽度

    我有一个问题 如果我在 css 中设置图像高度并尝试获取高度 宽度 我会在不同的浏览器中得到不同的结果 有没有办法在所有浏览器中获得相同的尺寸 你可以找到一个活生生的例子here http web cinaird se pdf tester
  • 使用 jQuery 保留切换状态[重复]

    这个问题在这里已经有答案了 可能的重复 带 Cookie 的 jQuery 切换 https stackoverflow com questions 2523189 jquery toggle with cookie 我有一个简单的切换 但
  • 如何在 jQuery 中将标题转换为 URL slug?

    我正在 CodeIgniter 中开发一个应用程序 我试图在表单上创建一个字段来动态生成URL slug 我想做的是删除标点符号 将其转换为小写 然后用连字符替换空格 例如 Shane s Rib Shack 将变成 shanes rib
  • 如何设置必须输入特定数字的字段?

    我想知道如何创建一个需要输入特定数字或文本的字段 例如 激活码 以及在输入的确认答案的情况下移动到 网页 并且在未确认的情况下移动到 另一页面 的按钮 使用必需的属性
  • fadeOut() 和slideUp() 同时进行?

    我已经发现jQuery 淡出然后滑动 https stackoverflow com questions 734554 jquery fadeout then slideup这很好 但不是那个 我怎么能够fadeOut and slideU
  • 如何将 STRUCT - OR - JSON 传递给 Coldfusion CFC 方法

    我有一个现有的 CFC 在将结构传递到方法中时可以正常工作 问题是 我们现在还需要通过 JSON 将数据传递到同一函数中 这是 CFC 片段
  • 如何在具有相同值的下拉菜单上触发 jQuery 更改事件

    即使用户选择相同的值 如何每次都触发 jQuery 更改事件 我需要刷新效果 例如如果用户选择Lawyer它会发出警报hello然后用户再次选择Lawyer从下拉菜单中 它应该发出警报hello 我怎样才能实现它 以下是代码 jQuery
  • 使 Bootstrap Popover 在悬停而不是单击时出现/消失

    我正在使用 Bootstrap 构建一个网站Popover http twitter github com bootstrap javascript html popovers我不知道如何使弹出窗口出现在悬停而不是单击时 我想做的就是当有人
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • $ 在 JQuery 中意味着什么

    在下面的 var obj one 1 two 2 three 3 four 4 five 5 each obj function i val console log val 这里是什么意思 是对象吗 是一个别名jQuery对象 函数 它充当

随机推荐

  • 提取两个给定字符串之间的文本

    希望有人可以帮助我 现在已经遍布谷歌了 我正在对文档进行一些区域 ocr 并且想使用正则表达式提取一些文本 总是这样 直到 姓名 姓名 org nr 12323123 我想提取名称部分 它可以是 1 4 个名称 但 Til 和 org nr
  • 大数组的堆栈溢出,但同样大的向量的堆栈溢出?

    今天我在处理大型数据结构时遇到了一个有趣的问题 我最初使用向量来存储超过 1000000 个整数 但后来决定我实际上并不需要向量的动态功能 无论如何 我在声明后就保留了 1000000 个位置 相反 这将是有益的 能够在数据结构中的任何位置
  • 如何禁用 PHP 中的线程安全?

    我正在使用一些需要禁用线程安全的软件 我正在 Windows 服务器上工作 根据我在其他地方读到的内容 我不能只在 ini 文件中配置它 这是真的 如果是这样 我将如何编译它以关闭线程安全 您必须在禁用 ZTS 的情况下编译 PHP 编译标
  • MATLAB 中的 .m 和 .mat 文件有什么区别

    当我跟踪我的参考 MATLAB 脚本时 我发现了带有以下内容的文件 mat扩大 我的问题是 有什么区别 mat and m files 如何使用打开文件 mat扩大 扩展名为 m 的文件包含 MATLAB 代码 其形式为script htt
  • 移动设备上的 jQuery 实时滚动事件(解决方法)

    老问题 当用户在移动网站或应用程序 Web 视图 上滚动元素时触发滚动事件 我所寻找的只是访问正确的scrollTop 当用户在移动设备上滚动我的页面时获取该值 而不是在用户停止时获取它 我确信在某个地方有一个解决方法 如果我是正确的话 这
  • iOS:从背景图像中检索矩形图像

    我正在开发一个实现 其中我在大背景图像中有一个矩形图像 我正在尝试以编程方式从大图像中检索矩形图像 并从该特定矩形图像中检索文本信息 我正在尝试使用 Open CV 第三方框架 但无法从大背景图像中检索矩形图像 有人可以指导我 我怎样才能实
  • 如何使用 JSZip 使用 Node.js 中的缓冲区内容生成 zip 文件?

    我有一个字符串数组 应将其写入 txt 文件 另外 我需要使用 JSZip 将生成的 txt 文件压缩为 zip 格式 在客户端 我能够使用该字符串数组生成 文本 纯文本 Blob 然后使用 JSZip 将此 Blob 压缩为 zip 格式
  • .NET 6 混淆

    我试图使用 生成单个文件 选项来混淆编译 NET 6 项目后获得的 exe 文件 问题是没有混淆器对其起作用 我想知道是否有人知道为什么 预先感谢您的回答 您必须混淆位于 obj Release net6 0 windows win x64
  • 为分组依据字段创建索引?

    Oracle数据库中需要为group by字段创建索引吗 例如 select from some table where field one is not null and field two group by field three fi
  • 编码 NSAttributedString 会引发错误

    根据已接受的答案这个问题 https stackoverflow com questions 2626667 saving custom attributes in nsattributedstring 我写了以下代码 NSData som
  • Angular 2 中的访问控制允许来源问题

    我在从 Node js 服务器获取数据时遇到问题 客户端是 public getTestLines Observable
  • “变量”变量名c++

    问题 我在这里搜索了一段时间 寻找一种循环遍历名为有点像的变量的方法variable 1 variable 2 variable n 基本上 我问是否有一种方法可以使用循环来实现variable i或者 更具体地说 就我而言 functio
  • 如何使ODP.NET 4.0(64位)在64位机Windows 7上运行?

    我已经使用 Oracle 提供的 XCopy 11 2 安装了 64 位计算机的 Oracle 客户端 按照自述说明安装了所有内容 我正在使用 Visual Studio 2010 该项目的类型为 ASP NET 网站 当我尝试使用上面安装
  • app.module.ts 中的environment.product变量始终为true

    我试图在我的 app module 文件中设置一个配置设置 以便它根据我是否在生产中而有所不同 My environment ts文件有 export const environment production false My enviro
  • 即使 EditText 不可编辑,EditText 光标也可见

    我需要在一个中引入数据EditText但我想使用虚拟键盘 而不是安卓键盘 如果我使用setKeyListener null 即使使用后光标也是不可见的setCursorVisible true 是否有可能制作一个EditText即使它不可编
  • 是否可以将 Primefaces 和 Richfaces 结合到一个 Web 应用程序中?

    看完之后RichFaces 与 PrimeFaces 针对性能 https stackoverflow com questions 3402952 richfaces vs primefaces 我很想在我的 Web 应用程序中同时使用两者
  • 在 Windows 10 版本中找不到 SettingsPane

    我正在使用 Visual Studio 2015 构建一个新的 Windows 10 UWP 通用 Windows 平台 应用程序 实际上 我正在移植我的 Windows 8 1 应用程序 但我是通过创建一个全新的项目并手动拉入每个类来实现
  • 如何使用 git 作为 SQL Server Management Studio 的源代码控制提供程序

    我们可以使用GIT作为sql management studio的源代码管理吗 用于 SSMS 中的数据库源代码控制 代理 SVN SCC Subversion 插件 http www zeusedit com agent ssms ms
  • 分析/改善内存使用和/或 GC 时间

    Original 我正在尝试聚合 CSV 文件并遇到 我认为 过多的内存使用和 或 GC 工作 当团体数量增加时 这个问题似乎就会出现 当键达到数百或数千时没有问题 但当键达到数万时很快就会开始在 GC 中花费大部分时间 Update 搬家
  • 当我的 jQuery UI 日期选择器在初始页面加载时工作正常时,为什么它不能用于回发?

    我一直在尝试将 jQuery UI Datepicker 集成到我们的 ASP NET WebForms 应用程序中 该应用程序使用母版页为所有页面提供共同的外观 并且所有内容页面都构建在 UpdatePanel 的 ContentTemp