Диалоговое окно подтверждения во времени выполнения в asp.net

В Вашей ситуации я думаю, что Ваш партнер корректен. То, что хорошо о перебазировании, - то, что постороннему, на которого похожи Ваши изменения, они все произошли в чистой последовательности все собой. Это означает

  • , Ваши изменения очень легко рассмотреть
  • , можно продолжить вести себя любезно, маленькие фиксации, и все же можно обнародовать наборы тех фиксаций (путем слияния в ведущее устройство) внезапно
  • при рассмотрении общедоступного основного ответвления, Вы будете видеть различную серию фиксаций для различных функций различными разработчиками, но они не будут все смешаны

, можно все еще продолжить продвигать частное ответвление разработки в удаленный репозиторий ради резервного копирования, но другие не должны рассматривать это как "общедоступное" ответвление, так как Вы будете повторно базироваться. BTW, легкая команда для того, чтобы сделать это git push --mirror origin.

программное обеспечение Packaging статьи с помощью Мерзавца делает довольно хорошее задание, объясняя торговлю offs в слиянии по сравнению с перебазированием. Это - немного различного контекста, но принципалы являются тем же - это в основном сводится, являются ли Ваши ответвления общедоступными или частными и как Вы планируете интегрировать их в магистраль.

9
задан Geri Langlois 5 August 2009 в 18:32
поделиться

4 ответа

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

Код кнопки:

 <asp:Button ID="btnSave" OnClick="btnSaveClick" runat="server" Text="Save" OnClientClick="return CheckForVersion()" />

Javascript:

<script language="javascript">
    function CheckForVersion() {
        PageMethods.CheckForVersion(aspnetForm.ctl00$ContentPlaceHolder1$ddlPageName2.value, aspnetForm.ctl00$ContentPlaceHolder1$txtContentName2.value, OnSucceeded, OnFailed);
        return false;
    }

    function OnSucceeded(results) {
       if(results) {
            //version exists so prompt user
            if(confirm("Version already exists. Do you want to overwrite?")) {
                __doPostBack('ctl00$ContentPlaceHolder1$btnSave','');
            }
        }
        else
        {
            //version does not exist so save it without prompting user
            __doPostBack('ctl00$ContentPlaceHolder1$btnSave',''); 
        }

    }

    function OnFailed(error) {
        // handle pagemethod error
        alert(error.get_message());
    }

</script>

C # с использованием Subsonic 2.1:

[WebMethod]
    public static bool CheckForVersion(string pageName, string versionName)
    {
        PageContentCollection pages = new PageContentCollection().Where("pageName", pageName).Where("versionName", versionName).Load();
        if (pages.Count > 0)
            return true;
        else
            return false;            
    }
7
ответ дан 4 December 2019 в 09:37
поделиться
<asp:Button OnClientClick="return confirm('Are you sure you want to go?');" 
            Text="Confirm" runat="server" onclick="Unnamed1_Click" />

Если они нажмут ОК, произойдет событие onclick сервера, если они нажмут «Отмена», будет похоже, что они даже не нажимали кнопку, конечно, вы всегда можете добавить функциональность к отменить часть.

Может быть, что-то вроде:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function CompareConfirm() 
        {
            var str1 = "abc";
            var str2 = "def";

            if (str1 === str2) {
                // your logic here
                return false;
            } else {
                // your logic here
                return confirm("Confirm?");
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button OnClientClick="return CompareConfirm();" 
            Text="Confirm" runat="server" onclick="Unnamed1_Click" />
    </div>
    </form>
</body>
</html>
13
ответ дан 4 December 2019 в 09:37
поделиться

Альтернативный, более простой подход, не требующий AJAX, - разрешить обратную передачу как обычно, а затем в коде программной части выполнить свои проверки.

Если требуется подтверждение пользователя, просто верните пользователя обратно на ту же страницу, но сделайте дополнительную панель видимой и скройте исходную кнопку «Сохранить».

На этой дополнительной панели отобразите ваше сообщение с другим OK / Cancel кнопка. Когда пользователь нажимает эту кнопку OK, выполняется сохранение!

2
ответ дан 4 December 2019 в 09:37
поделиться

Поставьте галочку перед рендерингом страницы клиенту. Затем прикрепите обработчик (на стороне клиента, например, javascript) к кнопке сохранения или форме, которая отображает окно подтверждения (но только если сохранение приводит к замене).

0
ответ дан 4 December 2019 в 09:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: