DevExtreme Popup Mesaj Gönderme Formu Örneği

Form Tasarımı, başlık, içerik ve çoklu alıcı seçimi alanından oluşmaktadır.

<div class="row" id="dvMessageTemplate" style="display:none">
    <div class="col-sm-12">
        <div class="form-group row">
            <label for="txtAlicilar" class="col-lg-4 col-sm-12 col-form-label">Alıcılar</label>
            <div class="col-sm-12 col-lg-8">
                <div id="txtAlicilar"></div>
            </div>
        </div>
        <div class="form-group row">
            <label for="txtBaslik" class="col-lg-4 col-sm-12 col-form-label">Başlık</label>
            <div class="col-sm-12 col-lg-8">
                <div id="txtBaslik"></div>
            </div>
        </div>
        <div class="form-group row">
            <label for="txtIcerik" class="col-lg-4 col-sm-12 col-form-label">İçerik</label>
            <div class="col-sm-12 col-lg-8">
                <div id="txtIcerik"></div>
            </div>
        </div>
        <div class="text-center">
            <button class="btn btn-warning btn-sm" id="btnSendMessage" type="button">Gönder</button>
        </div>
    </div>
</div>

 

Popup ı açmak için bir buton tanımlayıp aşağıdaki yöntemle popupı, içeriğini ve validation kısmını oluşturabilirsiniz. Aşağıda button click eventı ile birlikte örnek verilmiştir.

$('#btnNewMessage').click(function () {
            var popupOptions = {
                width: ($(window).width() * 0.5),
                height: 300,
                id: "frmSendMessage",
                showTitle: true,
                title: "Yeni Mesaj Gönderme",
                dragEnabled: false,
                closeOnOutsideClick: false,
                shading: true,
                resizeEnabled: true,
                columnAutoWidth: false,
                onShown: function () {
                    $('#dvMessageTemplate').css('display', '');

                    var userData = [];
                    var jsonUsers = JSON.parse($('#hdPageModel').val()).Kullanicis;
                    for (var i = 0; i < jsonUsers.length; i++) {
                        userData.push({
                            Id: jsonUsers[i].Id,
                            DisplayText: jsonUsers[i].Ad + ' ' + jsonUsers[i].Ad + ' (' + jsonUsers[i].EMail + ')'
                        });
                    }

                    $("#txtAlicilar").dxTagBox({
                        dataSource: new DevExpress.data.ArrayStore({
                            data: userData,
                            key: "Id"
                        }),
                        elementAttr: {
                            class: "form-control"
                        },
                        displayExpr: "DisplayText",
                        valueExpr: "Id",
                        searchEnabled: true,
                    }).dxValidator({
                        validationRules: [{
                            type: "required",
                            message: "Alıcı seçimi zorunludur"
                        }]
                    });

                    $('#txtBaslik').dxTextBox({
                        elementAttr: {
                            class: "form-control"
                        }
                    }).dxValidator({
                        validationRules: [{
                            type: "required",
                            message: "Başlık zorunludur"
                        }, {
                            type: "stringLength",
                            min: 10,
                            message: "Başlık minumum 10 karakter olmalıdır"
                        }]
                    });
                    $('#txtIcerik').dxTextArea({
                        height: 100,
                        elementAttr: {
                            class: "form-control"
                        }
                    }).dxValidator({
                        validationRules: [{
                            type: "required",
                            message: "İçerik zorunludur"
                        }, {
                            type: "stringLength",
                            min: 10,
                            message: "İçerik minumum 10 karakter olmalıdır"
                        }]
                    });
                    var forceValidationBypass = true;
                    function validateAndSubmit(params) {
                        forceValidationBypass = false;
                        var result = params.validationGroup.validate();
                        if (result.isValid) {

                            var mesajData = {
                                "Baslik": $('#txtBaslik').dxTextBox('instance').option('value'),
                                "Icerik": $('#txtIcerik').dxTextArea('instance').option('value'),
                                "AliciKullaniciListesi": $("#txtAlicilar").dxTagBox('instance').option('value')
                            };

                            ShowLoading();
                            $.ajax({
                                type: "POST",
                                url: webApiUrl + "/api/SendMessage",
                                headers: {
                                    Authorization: 'Basic ' + UserHelper.GetToken()
                                },
                                data: JSON.stringify(mesajData),
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                success: function (data) {
                                    HideLoading();
                                    if (data.Status) {
                                        ShowSuccess(data.Message);

                                        setTimeout(function () {
                                                        window.location = '@Url.Action("Index", "Message")';
                                                    }, 2000);
                                    } else {
                                        ShowError(data.Message);
                                    }
                                },
                                failure: function (errMsg) {
                                    HideLoading();
                                    ShowError(errMsg);
                                }
                            });
                        }
                        forceValidationBypass = true;
                    }

                    $("#btnSendMessage").dxButton({
                        text: "Gönder",
                        onClick: validateAndSubmit
                    });
                },
                onHidden: function () {
                    $('#dvMessageTemplate').css('display', 'none');
                    // DisposePopup(this._options.id);
                }
            };

            var popup = $("#dvMessageTemplate").dxPopup(popupOptions).dxPopup("instance");

            popup.show();
        });

 

 

 

Add comment

Loading