我正在开发一个服务器自定义控件(.NET),一个带有jQueryUI插件的“DatePicker”。 所以,我有下一个脚本,它被加载为webResource:
的JavaScript
$(function () {
$("#" + ctrlInput).datepicker({
maxDate: MaxDate,
minDate: MinDate
});
});
正如你所看到的,我有javascript变量,所以,为了加载脚本和变量,我会做下一个:
C#
string javascriptVariables = String.Format(
"var MinDate = '{0}'; var MaxDate = '{1}'; var ctrlInput = '{2}';",
MinDate ?? DateTime.MinValue.ToShortDateString(),
MaxDate ?? DateTime.MaxValue.ToShortDateString(),
_textBox.ClientID
);
// Load javascript variables (it will be load every time i add a control)
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "dateValues" + _textBox.ClientID, javascriptVariables, true);
// Load jQueryPlugin (it is loaded only once, and this is the problem)
Page.ClientScript.RegisterClientScriptResource(this.GetType(), "[[resourceName]]");
工作正常。 问题是我多次将此控件添加到页面。
这是因为脚本变量加载正常,但RegisterClientScriptResource不再加载jQuery插件!我不知道我怎么能强迫负荷!因为我无法将资源键设置为 RegisterClientScriptResource
有人知道如何解决这个问题吗?
由于
答案 0 :(得分:0)
我认为你没有以正确的方式解决问题。
我要做的是考虑另一种将变量传递给javascript的方法,比如数据属性。
您可能正在使用服务器控件生成html输入,为您的日期添加数据属性:
<input type="text" ... data-mindate="01/01/2013" data-maxdate="12/31/2013" />
下一步是,使用数据属性:
,而不是将全局变量提供给datepicker函数$('#whatever').data('mindate');
或
$('#whatever').attr('data-mindate');