Пользовательский серверный элемент управления исчезает со страницы при обновлении UpdatePanel - PullRequest
1 голос
/ 23 мая 2010

Я создал собственный серверный элемент управления asp.net.Он отлично работает на обычной странице asp.net и как объект DOM внутри браузера.Но я никогда не использовал UpdatePanel раньше, и теперь я пытаюсь убедиться, что этот элемент управления работает там же.Это не так.Если я добавлю свой элемент управления на страницу за пределами панели обновлений и нажму внутреннюю кнопку (триггер) какой-либо панели, все будет работать нормально.Но если я помещу свой элемент управления на панель обновлений и снова нажму эту кнопку, элемент управления «исчезнет» со страницы полностью.Я все еще вижу свой элемент управления в отладчике javascript и обновлении, что означает, что сам объект все еще находится в DOM.Похоже, панель просто «скрывает» внешний элемент div моего элемента управления по какой-то причине.Я попытался вызвать метод Update () панели для обработчика нажатия кнопки, установил для UpdateMode панели значение Conditional и Always.Все с одинаковым результатом.Как я могу это исправить?Спасибо!

1 Ответ

0 голосов
/ 23 мая 2010

Публикация с другого компьютера в ответ на TriLLi: Вот мой код aspx. Опять же, UpdateMode может быть условным или всегда - результат один и тот же, 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>
...