我创建了一个自定义的asp.net服务器控件。它在常规的asp.net页面上工作正常,在浏览器中作为DOM对象工作。但我之前从未使用过UpdatePanel,现在我正在努力确保这个控件也能在那里工作。它没有。如果我将控件添加到更新面板之外的页面并单击某个面板的内部按钮(触发器),一切正常。但是,如果我将控件放在更新面板中并再次单击该按钮,则控件将从页面中“完全消失”。我仍然可以在javascript调试器和更新中看到我的控件,这意味着对象本身仍然在DOM中。由于某种原因,看起来面板只是“隐藏”我控件的外部div元素。我试图在按钮点击处理程序上调用面板的Update()方法,将面板的UpdateMode设置为Conditional和Always。都具有相同的结果。我该如何解决这个问题?谢谢!
答案 0 :(得分:0)
从另一台计算机发布,以响应TriLLi: 这是我的aspx代码。同样,UpdateMode可以是Conditional或Always - 结果是相同的,cc1:WebControl消失但lblInfo标签在那里,在btnTest点击后完全正常。
<form id="form1" runat="server">
<asp:scriptmanager ID="scrManager" runat="server"></asp:scriptmanager>
<div>
<asp:updatepanel ID="pnlTest" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="designer">
<cc1:WebControl ID="ceFirst" runat="server" decisionxmlfilevirtualpath="/Person.config" autolist="User" help="Off"></cc1:WebControl>
</div>
<div class="designer">
<asp:label ID="lblInfo" runat="server" forecolor="red"></asp:label>
</div>
<div class="designer">
<asp:button ID="btnTest" runat="server" width="100" text="Test" />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnTest" EventName="Click" />
</Triggers>
</asp:updatepanel>
</div>
</form>