Как изменить код для удаления элемента после подтверждения? - PullRequest
1 голос
/ 13 декабря 2011

Мой код делает удаление элемента, прежде чем я подтверждаю это.Как я могу внести изменения, чтобы позволить ему удалить элемент после того, как я его подтвердил.Вот код JavaScript:

<script type="text/javascript">
    var _source;
    var _popup;

    function showChild_Delete(source) {
        this._source = source;
        this._popup = $find('popupChild_Delete');
        this._popup.show();
    }

    function btnChild_Delete_Click() {  
        this._popup.hide();
        __doPostBack(this._source.name, '');
    }                     
</script>

код вызова asp.net js код:

<asp:ImageButton ID="btnChild_Delete" runat="server" SkinID="delete" OnClientClick="showChild_Delete(this); return false;"
                                                    CommandName="deleteChild" CausesValidation="False" CommandArgument='<%# Eval(childID) %>' />

Код C #:

 if (e.CommandName == "deleteChild")

    {
        hashTable.Add(childID, e.CommandArgument);
        sqlData.GetDataTable(sproc_delChild, hashTable);

        gvChild.SelectedIndex = -1;
        pnlChild_Upload.Visible = false;
        this.upnlChildUpload.Update();

        RefreshChild();
    }

Буду признателен за любую помощь.

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Этот ответ на вопрос, который я задал себе , содержит полное решение, использующее диалоговое окно jquery-ui для всплывающего диалогового окна подтверждения.

Возможно, вы сможете адаптировать его к любому javascriptиспользуемая вами библиотека.

0 голосов
/ 13 декабря 2011

Вы хотели бы сделать что-то на стороне клиента в javascript, побуждая их принять свое решение, прежде чем сделать это ...

<script type="text/javascript">
    function btnChild_Delete_Click() {  
        this._popup.hide();

        // the _doPostBack is triggering the delete. simply writing something here.
        if (!confirm('Are you sure?')) return;

        __doPostBack(this._source.name, '');
    }                     
</script>

РЕДАКТИРОВАТЬ: чтобы сделать это с помощью стилизованного окна подтверждения, я бы сделал следующее (например, псевдокод для иллюстрации логического потока).

  1. Введите DIV для подтверждения удаления. Стилизуйте его так, как вам нравится в CSS, и спрячьте его (либо сделав так, чтобы он отображался: нет, либо за кадром с полями.

    <div id="confirmationBox">
        <p>Are you sure?</p>
        <button id="doDelete">Delete</button>
    </div>
    
  2. Измените ваш скрипт для вызова функции, которая показывает / скрывает подтверждение DIV:

    function buttonConfirmDelete_Click {
        // 1. display the confirmation box.
    }
    
    function buttonDoDelete_Click {
        __doPostBack(this._source.name, '');
        // 2. hide the confirmation box.
    }
    

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

конечно, есть более чистые способы сделать это, но кажется, что вы ищете быстрое и простое решение.

что ответит на ваш вопрос?

0 голосов
/ 13 декабря 2011
function btnChild_Delete_Click() {
    if (!confirm('Are you sure you want to delete?')) return;
    this._popup.hide();
    __doPostBack(this._source.name, '');
}   
...