Скрытие местозаполнителя внутри панели обновления от asp.net

0

Я использую updatepanel внутри всплывающего окна jQuery на странице asp.net. В этой updatepanel меня есть два заполнителя. На одном заполнителе у меня есть форма с кнопками. Когда я нажимаю кнопку сохранения, запись сохраняется в базе данных. Теперь после сохранения записи. Я хочу скрыть этот заполнитель формой.

И показать другой placeholder, который является благодарностью за сообщение. Как мне это сделать?

Я делаю так:

RegisterPH.Visible = false;
ThankYouPH.Visible = true;
ModalUpdatePanel.Update();

Моя html-разметка выглядит так:

<asp:UpdatePanel ID="ModalUpdatePanel" runat="server" UpdateMode="Conditional">
   <Triggers>
      <asp:AsyncPostBackTrigger ControlID="btnRegister" EventName="Click" />
   </Triggers>
   <ContentTemplate>
      <asp:PlaceHolder ID="RegisterPH" runat="server">
      </asp:PlaceHolder>
      <asp:PlaceHolder ID="ThankYouPH" runat="server" Visible="false">
          <div class="row">
              <div class="RegisterText2">
                  <asp:Literal ID="ThankYouContentLiteral" runat="server" Text="<%$ Resources:Register, ThankYouContent %>" />
              </div>
          </div>
     </asp:PlaceHolder>
  </ContentTemplate>
</asp:UpdatePanel>

Нужно ли мне использовать updatepanel endrequest функцию или зарегистрировать некоторый скрипт? Пожалуйста, предложите.

  • 0
    Разве вы не можете просто сделать что-то вроде RegisterPH.visible = false ThankYouPH.visible = true ?
  • 0
    @YuriyGalanter Я сделал это, как показано в коде выше, но это ничего не делает
Показать ещё 1 комментарий
Теги:

1 ответ

0

Похоже, это должно сработать. Убедитесь, что вы помещаете элемент управления <asp:ScriptManager/> на свою страницу (или RadScriptManager, если вы используете Telerik, ToolkitScriptManager, если вы используете Microsoft AjaxToolkit и т.д.).

EDIT: Ниже приведен код, который работает правильно с использованием UpdatePanel и модального диалога Bootstrap, о котором вы говорили:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="bootstrap.aspx.cs" Inherits="TestWeb.bootstrap" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link rel="stylesheet" href="css/bootstrap-theme.min.css">
    <script src="Scripts/jquery-1.8.2.js"></script>
    <script src="js/bootstrap.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
  <asp:ScriptManager ID="ScriptManager1" runat="server" />
  <a data-toggle="modal" href="#myModal" class="btn btn-primary btn-lg">Launch demo modal</a>
  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Modal title</h4>
        </div>
        <div class="modal-body">
            <asp:UpdatePanel ID="upd" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                <asp:PlaceHolder id="p1" runat="server">
                    <asp:Literal id="lit1" runat="server" Text="Placeholder 1" />
                </asp:PlaceHolder>
                <asp:PlaceHolder id="p2" runat="server" visible="false">
                    <asp:Literal id="lit2" runat="server" Text="Placeholder 2" />
                </asp:PlaceHolder>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btn" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            <asp:Button ID="btn" runat="server" CssClass="btn btn-primary" Text="Save" OnClick="btn_Click" />
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->    
</form>
</body>
</html>

И в коде:

protected void btn_Click(object sender, EventArgs e)
{
    this.p1.Visible = false;
    this.p2.Visible = true;
}

Я бы посоветовал вам создать тестовую страницу в вашем приложении только с этой разметкой, чтобы подтвердить, что она работает в вашей среде. Предполагая, что это так, я возьму ваш проблемный код и начну вытаскивать фрагменты. Возможно, поместите один и тот же текст во втором элементе управления Placeholder вместо пары стилизованных div и Literal который вытащит его текст из файла ресурсов. Прокомментируйте код обновления данных, чтобы все ваши кнопки "Сохранить" отображали видимость на двух элементах управления Placeholder. Если вы все еще не можете заставить его работать после того, как вы удалите страницу до минимума, добавьте больше своего кода, и я еще раз посмотрю.

  • 0
    Я использую модальное всплывающее окно начальной загрузки, и приведенный выше код не обновляет содержимое после сохранения данных. Я не нашел ни одной ссылки из Google. Пожалуйста, предложите любое решение.
  • 0
    @ DotnetSparrow Я обновил свой ответ, надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню