OnClientClick и AJAX в RadControls для ASP.NET (telerik) не работают - PullRequest
2 голосов
/ 02 апреля 2012

У меня есть следующий код:

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="rlpMain">
    <asp:ImageButton ID="ImageButton1" runat="server" 
        OnClientClick="return confirm('Are you sure?');" />
</telerik:RadAjaxPanel>

Этот код не запускает мой код за событием, которое я записал в файл .vb.

Пожалуйста, помогите мне ....

Ответы [ 2 ]

4 голосов
/ 02 апреля 2012

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

<asp:ImageButton ID="ImageButton1" runat="server" 
    OnClientClick="return confirm('Are you sure?');" />

Необходимо немного изменить OnClientClick для работы с AJAX:

<asp:ImageButton ID="ImageButton2" runat="server" 
    OnClientClick="if (!confirm('Are you sure?')) return false;" />

Когда кнопка ajaxified добавляется необходимый AJAXзначение RadAjaxManager или когда кнопка помещается в элемент управления RadAjaxPanel.

В качестве альтернативы, событие на стороне клиента OnRequestStart может использоваться для реализации более сложной логики.Вот пример сценария:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function OnRequestStart(ajaxControl, eventArgs) {
            var eventTarget = eventArgs.get_eventTarget(); 
            if (eventTarget == "<%= ImageButton1.UniqueID %>") {
                return confirm('Are you sure?');
            }
            else {
                return false;
            }
        }
    </script>
</telerik:RadCodeBlock>
0 голосов
/ 02 апреля 2012

Если вы хотите придерживаться RadControls, вы можете использовать RadButton в качестве ImageButton, как определено здесь:

http://www.telerik.com/help/aspnet-ajax/button-image-buttons.html

Создать кнопку с атрибутом OnClientClicking, установленным в функциюэто вызывает подтверждение (или radconfirm для вставки в telerik) ниже:

function ConfirmDeletion(sender, args) {
    var ContinuePostBack = Function.createDelegate(sender, function (clickedOK) {
        if (clickedOK) {
            this.click();
        }
    });
    var text = "Are you sure you wish to delete this attribute?";
    radconfirm(text, ContinuePostBack, 300, 100, null, "Deletion");
    args.set_cancel(true);
}

Это отменяет обратную передачу, но затем нажимает кнопку через делегат ContinuePostBack, если пользователь нажал OK.Я часто использовал этот код для запроса удаления.

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