asp.net/ajax定制模板控制,显示/隐藏与占位符项目
-
19-09-2019 - |
题
我有一个包含一个自定义的用户控件的自定义模板对照(栏)(按钮)的按钮用了jQuery风格和管理的状态/回发/非=回送等。
一个几个按钮被隐藏有占位符,并且击中按钮中的一个时的显示方式。
所有与问候jquery的按钮似乎在回发发起然而视图状态是失去了对由占位符不可见的按钮(AJAX风格使用PageRequestManager一个UpdatePanel内)。
这似乎是一个问题是特定于视图状态和按钮上的模板控制的占位符。这通常工作在非Ajax的环境,我怀疑我失去了一些东西。
这让我跟你的思维赞赏任何意见。
在代码位于各个部分,可能不值得粘贴,因为这将是完全断开(我知道这并不帮助)
解决方案
我觉得我需要在这里回答我的问题:
除了使用占位符或的div的CSS的,UpdatePanel的呈现在任一个div或根据绘制选项的跨度。在这种情况下只是隐藏在UpdatePanel创建,而不是试图隐藏在div或跨度/显示一个新的外部容器。
其他提示
如果我没有记错,ASP.NET控件没有他们是否有可见设置为false完成其生命周期。这意味着,像渲染()不叫,和ViewState的必须是其中的一件事情(这是有道理的)。使用更新面板与AJAX / JavaScript的一起也是一个非常棘手的事情,并没有很好地工作。这仅仅是如何ASP.NET控制和更新面板的工作。
我的建议是要么使用更新面板,或使用JavaScript,而不是两者。
您可以轻松地效仿更新面板做使用jQuery的$。员额/获取和使用HTML代替的代码段从Web服务调用返回。
function myButtonClick(event){
$.post("path/to/webservice", {data1: "data1"}, function(data, status){
$("#myPanel").replaceWith(data);
});
}
您最终会遇到其他问题太多,如果你有一个JS附加到代码,通过更新面板更新。例如:如果你有每个都JS重视他们的项目,如ASP.NET AJAX控件工具包控件的一个列表,并且删除这些使用更新面板的页面之一,JS用来钩住控制多达将不同步。