Почему бы не открыть диалоговое окно - PullRequest
0 голосов
/ 28 марта 2012

Почему не открывается диалоговое окно "elete-dialog2" при запуске строки жирным шрифтом (между **)

<script type="text/javascript">
    $(function () {
        var deleteLinkObj;
        // delete Link
        $('.delete-link').click(function () {
            deleteLinkObj = $(this);  //for future use
            $('#delete-dialog').dialog('open');
            return false; // prevents the default behaviour
        });

        //definition of the delete dialog.
        $('#delete-dialog').dialog({
            autoOpen: false, width: 350, resizable: false, modal: true, //Dialog options
            buttons: {
                "Confirm": function () {
                    $.post(deleteLinkObj[0].href, function (data) {  //Post to action
                        if (data == '@Boolean.TrueString') {
                            deleteLinkObj.closest("tr").hide('slow'); //Hide Row
                            //(optional) Display Confirmation
                        }
                       else {
                            //this is the line
                            **$('#delete-dialog2').dialog('open');**
                        }
                    });
                    $(this).dialog("close");
                },
                "Cancel": function () {
                    $(this).dialog("close");
                }
            }
        });
 $('#delete-dialog2').dialog({
            autoOpen: false, width: 350, resizable: false, modal: true, //Dialog options
            buttons: {

                "Accept": function () {
                    $(this).dialog("close");
                }
            }
        });


    });
</script>

Вид:

<h2>UNIVERSITIES</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
 @Html.ValidationSummary(true)
<table>
    <tr>
        <th>
            Name
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.IdUniversidad }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.IdUniversidad }, new { @class = "delete-link" })
        </td>
    </tr>
}

</table>
<div id="delete-dialog" title="Information">
<p>Are you sure you want to delete this?</p>
</div>  

<div id="delete-dialog2" title="Error">
<p>Ooops... Something failed</p>
</div>  

Это толькопоказывает диалоговое окно с кнопками подтверждения и отмены, но при попытке показать cuandro диалоговое окно с кнопкой подтверждения не отображается

Сначала, если открыто ('# delete-dialog'), не открывать второе диалоговое окно ('# delete-dialog2 ') когда выполнение входит в else, выполнение выполняется в else в этой части if (data == '@Boolean.TrueString') { deleteLinkObj.closest("tr").hide('slow'); //Hide Row //(optional) Display Confirmation } else { **$('#delete-dialog2').dialog('open');** }

Blessings

1 Ответ

1 голос
/ 28 марта 2012

Этот быстрый тест работает нормально:

http://jsfiddle.net/bES2X/1/

Есть две вещи, отличающиеся от вашей:

  1. Точная использованная разметка,Я немного догадался.Если я правильно понимаю ваш код ASP.NET, возможно, вы используете несколько идентификаторов для своих строк, что является недопустимой разметкой.

  2. Функция $ post (я только что жестко закодировал неудачный сценарий).Похоже, что href правильно оценит IF , что вы хотите, это HREF первого канала передачи данных.Итак, тогда условно для @Boolean.TrueString работает?Попробуйте посмотреть это выражение или console.log для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...