Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
asp.net/ajax自定义模板控件,显示/隐藏带有占位符的项_Asp.net_Jquery_Ajax_Placeholder - Fatal编程技术网

asp.net/ajax自定义模板控件,显示/隐藏带有占位符的项

asp.net/ajax自定义模板控件,显示/隐藏带有占位符的项,asp.net,jquery,ajax,placeholder,Asp.net,Jquery,Ajax,Placeholder,我有一个自定义的模板控件工具栏,其中包含一个自定义的usercontrolbutton按钮。该按钮使用jquery来设置和管理状态/postbacks/non=postbacks等 一些按钮用占位符隐藏,并在点击其中一个按钮时显示 所有关于jquery的按钮似乎都是在使用PageRequestManager的UpdatePanel中以回发ajax样式启动的,但是占位符使按钮不可见,从而导致viewstate丢失 这似乎是一个特定于模板控件中占位符上的viewstate和按钮的问题。这通常适用于非

我有一个自定义的模板控件工具栏,其中包含一个自定义的usercontrolbutton按钮。该按钮使用jquery来设置和管理状态/postbacks/non=postbacks等

一些按钮用占位符隐藏,并在点击其中一个按钮时显示

所有关于jquery的按钮似乎都是在使用PageRequestManager的UpdatePanel中以回发ajax样式启动的,但是占位符使按钮不可见,从而导致viewstate丢失

这似乎是一个特定于模板控件中占位符上的viewstate和按钮的问题。这通常适用于非ajax环境,我怀疑我遗漏了什么

任何让我思考的评论,我都很感激


代码位于不同的部分,可能不值得粘贴,因为它将完全断开连接。我知道这没有帮助。

如果我没有记错,ASP.NET控件如果将visible设置为false,则不会完成其生命周期。也就是说,像Render这样的东西不会被调用,ViewState必须是有意义的东西之一。将更新面板与AJAX/Javascript一起使用也是一件非常棘手的事情,而且效果不太好。这就是ASP.NET控件和更新面板的工作方式

我的建议是要么使用更新面板,要么使用javascript,而不是两者都使用

通过使用jquery的$.post/get并用web服务调用返回的html替换一段代码,您可以轻松地模拟更新面板的功能

function myButtonClick(event){
    $.post("path/to/webservice", {data1: "data1"}, function(data, status){
        $("#myPanel").replaceWith(data);
    });
}

如果您将JS附加到通过更新面板更新的代码,那么最终也会遇到其他问题。例如:如果您有一个项目列表,每个项目都附加了JS,例如ASP.NET AJAX控件工具包控件之一,并且您使用更新面板从页面中删除其中一个,则用于连接控件的JS将不同步。

我觉得我需要在这里回答我自己的问题:


UpdatePanel不是在css中使用占位符或div,而是根据呈现选项以div或span呈现。在这种情况下,只需隐藏UpdatePanel创建的div或span,而不是尝试隐藏/显示新的外部容器。

我曾尝试在ID与placeholder和runat=server相同的div中使用display:none,这确实有效,但如果最初设置了div Visible=false,则无法实现,如果UserControls是可见的,然后是隐藏的,那么它就可以工作。看起来有点像第22条军规。嗨,如果UserControl上的Visible设置为false,我认为您在渲染上是正确的。我的UpdatePanel与jQuery配合得很好,只是这个显示/隐藏问题引起了一些悲伤。我可以使用javascript/jquery隐藏div来解决这个问题,在这种情况下,需要可见/隐藏的项不需要太多保护,所以css解决方案就可以了。对于需要隐藏的页面中更安全的部分仍然不理想。