Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
页面上的多个UpdatePanel从文本框中删除JavaScript日期选择器日历_Javascript_Asp.net_Ajax_Updatepanel_Datepicker - Fatal编程技术网

页面上的多个UpdatePanel从文本框中删除JavaScript日期选择器日历

页面上的多个UpdatePanel从文本框中删除JavaScript日期选择器日历,javascript,asp.net,ajax,updatepanel,datepicker,Javascript,Asp.net,Ajax,Updatepanel,Datepicker,实际上,我在页面上有多个更新面板,它们更新服务器上的不同值,但问题是我有一个文本框,我在其中附加了datepicker on Load事件的javascript类 但在日期文本框之前还有其他的updatepanel,当我用updatepanel中的日期控件更新它们的第一个日历图像时,它们消失了。或者移除文本框旁边的日历 txtDate.Attributes.Add("class", "show-week w16em dateformat-d-sl-m-sl-Y&qu

实际上,我在页面上有多个更新面板,它们更新服务器上的不同值,但问题是我有一个文本框,我在其中附加了datepicker on Load事件的javascript类

但在日期文本框之前还有其他的updatepanel,当我用updatepanel中的日期控件更新它们的第一个日历图像时,它们消失了。或者移除文本框旁边的日历

txtDate.Attributes.Add("class", "show-week w16em dateformat-d-sl-m-sl-Y"); 
在使用任何updatepanel之前,它是这样的

在我们升级任何updatepanel控件之后,它是这样的

但是不在任何updatepanel中的日期控件都正常工作


在这些UpdatePanel中,我实际上将值保存在DataTables中,并将这些DataTables保存在viewState中。。。。HTML没有更改。

是否更改文本框所在的DIV或表的INNERHTML,因为如果您在更新该DIV或表后删除日历控件。

无论使用何种方法附加日期选择器,都必须在updatepanel更新后再次调用

您可以通过以下方式在服务器端执行此操作:

或在客户端使用此选项:

// <body onload='...'> or in the <head>
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
    function () { theScript() });
//或在
Sys.WebForms.PageRequestManager.getInstance().add\u endRequest(
函数(){theScript()});

我猜datepicker和它的文本框都放在了updatepanel中

如果您使用UpdatePanel执行ajax回发,服务器将为页面上的所有UpdatePanel发送html,并刷新其所有内容,因此您的日期选择器将消失

如果在UpdatePanel上设置了
UpdateMode=Conditional
,则只有导致回发的UpdatePanel才会更新


另一个选项是使用ScriptManager.RegisterStartupScript重新创建日期选择器,但这可能会重置其值(取决于它是哪个日期选择器)

不。。。。在这些面板中,我实际上将值保存在DataTables中,并将其保存在viewState中。。。。HTML中没有任何更改。然后,您必须在每个ajax请求之后重新绑定日历控件,如y34h建议的那样。重新装订日历;Sys.Application.add_init(function(){$create(AjaxControlToolkit.CalendarBehavior,{“button”:$get(“”),cssClass:“cal_Theme1”,“format:“MM/dd/yyyyy”,“id:”,“Poupposition”:1},null,null,$get(“”);});好啊但如果下次同样的JavaScript问题再次出现时,updatepanel也会在服务器上进行回发或更新,那么每次面板更新时,您都必须使用JavaScript重新创建日期选择器,但如何做到这一点完全取决于您使用的日期选择器。我想您应该在加载时运行一些代码,尝试在(ajax-)回发时也加载这些代码。
// <body onload='...'> or in the <head>
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(
    function () { theScript() });