Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > как сохранить данные через jQuery-ui dialog?


Автор: Feller 3.8.2011, 21:48
jQuery-ui dialog создаёт свои кнопки в модальном окне, как можно через этот скрипт вызвать процедуру на стороне сервера или эмитировать клик?
Код

 $(function () {
        $(".addNew").dialog({
            autoOpen: false,
            width: 300,
            height: 300,
            modal: true,
            close: function (event, ui) {
                location.reload(false);
            },
            buttons:
            {
                "Add": function () {
                    $("add1").click(); 
                    $(this).dialog("close");
                },
                "Cancel": function () {
                    //cancel
                }
            }
        });

        $("#add").click(function (event) {
            event.preventDefault();
            $(".addNew").dialog("open");
        });
    });

Автор: WarHog 3.8.2011, 22:08
$.get, $.post etc. в обработчике клика

Автор: Feller 3.8.2011, 22:34
WarHog,  Можно по подробней у меня на серверной странице есть процедура Action которая сохраняет в базу данные
 
Код

 ''' <summary>
    ''' Добавление
    ''' </summary>
    ''' <remarks></remarks>
    Private Sub Action(ByVal pAction As String)
        Dim tCountAdd As Integer
        Try
            If pAction = "Add" Then
                If Not Me.txtNameHardware.Text = Nothing Then
                    tCountAdd = GetAdapter.Insert(Me.txtNameHardware.Text, DateAndTime.Now)
                Else
                    MsgBox("Заполните Поле")
                End If
                If tCountAdd = 1 Then
                    GridView1.DataBind()
                End If
            End If
        Catch ex As Exception
            MsgBox("Ошибка добавления")
        End Try
    End Sub



как мне её вызвать отсюда
Код

  "Add": function () {
                    $("add1").click(); 
                    $(this).dialog("close");
                },

Автор: jonie 4.8.2011, 15:54
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

ну или гуглить про функцию __doPostBack

Автор: Feller 4.8.2011, 21:31
jonie, 
попробывал сделал 
Код

 buttons:
            {
                "Add": function () {
                   var name = $("#<%= txtName.ClientID  %>").val();
                    var surname = $("#<%= txtSurname.ClientID %>").val();
                    var age = $("#<%= txtAge.ClientID %>").val();

                    $.ajax({
                        type: 'POST',
                        url: 'MyWebPage.aspx/AddNewItem',
                        data: '{"name":"' + name + '", "surname":"' + surname + '", "age":' + age + '}',
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            if (msg.d) {
                                alert("Successfully added new item");
                            }
                        },
                        error: function () {
                            alert("Error! Try again...");
                        }
                    });
                },
                "Cancel": function () {
                    //cancel
                }
            }
        });

Но вываливается ошибка при загрузке формы
The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

Автор: Feller 4.8.2011, 22:07
разобрался скрипт надо было поместить внутри тега <body> а не <head>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)