在 DotNetNuke-7 模块中使用日期选择器

Using datepicker in DotNetNuke-7 module

我是 DNN 初学者。我目前正在构建一个可以显示统计信息的模块。我的 DotNetNuke 版本是 7.0。统计来自Chartjs。对于此统计信息,我想实施过滤器。这些过滤器应该是 datepickers。作为 UI 元素,我现在包含一个带有 TextMode='Date' 的文本框。但目前我在设置该字段的默认值时遇到问题。默认值应为 01.01。今年的。

我已经尝试通过 C# 服务器端设置值。不幸的是没有成功。我还尝试通过 JavaScript 在客户端设置值。可惜也没有成功。

这些是我在 JavaScript:

中尝试的一些行
document.getElementById(<%= this.DatumVon.AccessKey %>).value = "01.01.2019";
document.getElementById(<%= this.DatumVon.AccessKey %>).innerText = "01.01.2019";
document.getElementById("DatumVon").value = "01.01.2019";

这些是我在 C# 中尝试的一些行 "Page_Load"(服务器端):

this.DatumVon.Text = "01.01.2019";

我预计 TextBox 的值为 01.01.2019。但是,它目前仅包含 dd.mmm.yyyy。我该如何更改?

谢谢。

您的本地化有问题。请参考 jQuery UI datepicker 文档("Localization" 部分),这应该会给您答案。

哇...我解决了。我做到了。有时解决方案就在您面前,您却看不到。 Michael Tobisch 是完全正确的。设置值时,格式非常重要。我一直使用德语格式。具有 TextMode="Date" 的 DNN TextBox 无法处理。 DNN 将此 TextBox 转换为 HTML 输入字段。但是这个输入框只能用"yyyy-mm-dd"的格式清空。根据客户端的地理位置(至少我是这么认为的),输入字段中显示的文本将被格式化。但输入字段的值始终具有相同的格式 ("yyyy-mm-dd")。这里非常重要:显示的文本和实际值具有不同的格式。

再次感谢 Michael Tobisch 给我的精神启发和对我的耐心。

同样重要的是,对 DNN 元素的实际 ID 的访问方式如下:this.Element.ClientID 而不是我之前假设的 this.Element.AccessKey。这也是错误的。