отображение предупреждающего сообщения с подтверждением при tinymce при перемещении дополнительной страницы на другую страницу

#c# #javascript #jquery #asp.net

#c# #javascript #jquery #asp.net

Вопрос:

У меня мало элементов управления веб-пользователя, поскольку я использую редактор расширения tinymce .. и я вызываю все элементы управления в одном aspx-файле при разных щелчках btn.

Я хочу, чтобы, когда я в режиме редактирования и я изменяю некоторый текст в этом редакторе и не сохраняю его, если я покидаю эту страницу, он должен спросить и показать сообщение о подтверждении, хотите ли вы сохранить этот текст.

как это сделать.

в файле ascx

Диагностика:

                     <asp:TextBox ID="txbDiag" TextMode="MultiLine" runat="server" Width="100%" Height="100px"></asp:TextBox>
                    <acr3s:tinymceextender runat="server" ID="TinyMceExtender4" TargetControlID="txbDiag" Theme="Full">
                    </acr3s:tinymceextender>                        
                </td>
  

расширитель, который я вызываю, является

использование системы; использование System.Коллекции.Общий; с использованием System.Linq; с использованием System.Web; с использованием System.Web.Пользовательский интерфейс; использование системы.ComponentModel; с использованием System.Web.UI.WebControls; с использованием System.Глобализация;

[сборка: WebResource(NewCaseWizardBAL.TinyMceExtender.SupportScript, «текст / javascript»)]

пространство имен NewCaseWizardBAL { [TargetControlType(typeof(TextBox))] общедоступный класс TinyMceExtender: ExtenderControl {

     internal const string SupportScript = "NewCaseWizardBAL.TinyMceSupport.js";

    private TinyMceTheme _theme = TinyMceTheme.Limited;

    private string GetTheme()
    {
        switch (Theme)
        {
            case TinyMceTheme.Limited:
                return "limited";
            case TinyMceTheme.Full:
                return "special";
            case TinyMceTheme.FullWithImage:
                return "specialWithImage";
            default:
                return "";
        }
    }
    [DefaultValue(TinyMceTheme.Limited)]
    public TinyMceTheme Theme
    {
        get { return _theme; }
        set { _theme = value; }
    }
    protected override IEnumerable<ScriptDescriptor> GetScriptDescriptors(Control targetControl)
    {
        return null;
    }

    protected override IEnumerable<ScriptReference> GetScriptReferences()
    {
        return null;
    }


    protected override void OnPreRender(System.EventArgs e)
    {
        base.OnPreRender(e);
        Control targetControl = FindControl(TargetControlID);            
        ScriptManager.RegisterClientScriptInclude(Page, typeof(TinyMceExtender), "include_tiny_mce", ResolveClientUrl("~/Scripts/tiny_mce/tiny_mce.js"));
        ScriptManager.RegisterClientScriptResource(Page, typeof(TinyMceExtender), SupportScript);
        ScriptManager.RegisterClientScriptBlock(this, typeof(TinyMceExtender), "init"   targetControl.ClientID, string.Format(CultureInfo.InvariantCulture, "initTinyMCE ('{0}', '{1}');", targetControl.ClientID, GetTheme()), true);

    }

}

public enum TinyMceTheme
{
    Limited,
    Full,
    FullWithImage
}
  

}

я не могу написать какое-либо событие onclient, потому что я вызываю сценарий маскировки onclient click

итак, как это сделать с помощью любого jquery или java script

я также использую плагин автосохранения, но он не показывает никаких предупреждающих сообщений

нужно ли мне что-то менять в tiny_mce.js

пожалуйста, помогите мне отобразить окно с предупреждением о подтверждении, чтобы спросить «Хотите ли вы сохранить изменения»

Ответ №1:

Вы можете использовать window.confirm() вызов на стороне клиента или OnClientClick функцию, например

 <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="javascript:return 
window.confirm('Are you sure about to submit the test?');" OnClick="Button1_Click" />
  

А затем в коде за:

 protected void Button1_Click(object sender, EventArgs e)
{
  Response.Redirect("NextPage.aspx");
}
  

Редактировать:

 <script type="text/javascript">
  function finalFunction ()
  {
    return window.confirm('Are you sure about to submit the test?');
  }
</script>
  

А затем вызовите функцию, содержащую оба сценария:

 <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="javascript:finalFunction();" OnClick="Button1_Click" />
  

Комментарии:

1. как я мог бы вызвать два скрипта одним onclientclick

2. я вызываю этот скрипт следующим образом OnClientClick=»$.loading({маска: true, эффект: ‘обновление многоточия’});»

3. нужно ли мне вызывать эту FinalFuncation () в каждом веб-пользовательском элементе управления или только в aspx-файле, где я вызываю весь элемент управления

4. отображается окно предупреждения, но если я нажимаю «ОК» или «Сохранить», оно перенаправляет на следующую страницу, чего я хочу, так это если я нажму «Отмена», тогда оно не должно перенаправлять на другую страницу, и если я нажму «ОК», тогда только оно перенаправит на другую страницу.. как это сделать

5. если я не хочу показывать сообщение о предупреждении в btn, нажмите A на какой-то странице, а на какой-то другой странице в том же btn нажмите A, я хочу показать это окно предупреждения .. возможно ли это, если да, то как