BAĞLANTILARIM

Takip Edin:

Jquery etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Jquery etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
0

Jquery Datatables Search Geciktirmeli Arama

Cuma, Aralık 23, 2022 / / ,

 Datatables.net tabloları üzerinde arama yaparken tuşa her basıldığında sunucuya istekte bulunmasının önüne geçmek için aşağıdaki yöntem kullanılabilir. Aşağıdaki kullanım, kullanıcının arama alanına karakter girişi bittikten sonra isteği sunucuya 1 kez göndermektedir.


        var handleSearchDatatable = function () {

            const filterSearch = document.querySelector('[data-kt-docs-table-filter="search"]');

            var dtSearchTimer = 0;

            filterSearch.addEventListener('keydown', function (e) {

                //console.log("keydown");

                clearTimeout(dtSearchTimer);

            });


            filterSearch.addEventListener('keyup', function (e) {

                //console.log("keyup");

                dtSearchTimer = setTimeout(function () {

                    //console.log("gecikmeli arama yap");

                    dt.search(e.target.value).draw();

                }, 500);


            });

        }

 

0

ASP.NET MVC'DE DATATABLES BİLEŞENİ VE AJAX SUNUCU TARAFLI SAYFALAMA SERVER SIDE PAGING

Perşembe, Ekim 18, 2018 / / , , , , ,

Asp.net MVC ile geliştirilen projede Datatables bileşeni kullanarak server side sunucu taraflı sayfalama yaptırmak için aşağıdaki kodlar kullanılabilir.

View tarafı

<table id="dataTablo" class="table table-hover table-checkable dataTable no-footer dtr-inline">
    <thead>
        <tr>
            <th>İşlem</th>
            <th>OdaAd</th>
            <th>Ad Soyad</th>
            <th>Eposta</th>
            <th>Telefon</th>
            <th>Durum</th>
        </tr>
    </thead>
</table>
--Jquery ilave edilmelidir
<link href="~/Content/assets/vendors/custom/datatables/datatables.bundle.css" rel="stylesheet" type="text/css" />
<script src="~/Content/assets/vendors/custom/datatables/datatables.bundle.js" type="text/javascript"></script>
<style type="text/css">
    @@media(max-width:670px) {
        .table {
            display: block;
            min-height: 300px;
            overflow-x: auto;
            width: 100% !important;
        }
    }
    .table > thead > tr > th {
        background-color: #f4f3f8;
        line-height: 28px;
        font-weight: 600;
    }
    tr:nth-child(even) {
        background-color: #faf9fc;
    }
    .dataTables_filter {
        float: left;
        margin-bottom: 20px;
    }
        .dataTables_filter input {
            background-color: #f4f5f8;
            border-color: #f4f5f8;
            color: #575962;
            padding: 18px;
            width: 272px;
            font-size: 13px;
        }
    .dataTables_paginate {
    display:inline-block;
    }
    .dataTables_length{
        float:right;
        display:inline-block;
    }
    .bottom{
        margin:34px;
    }
</style>

<script type="text/javascript">
    var oTable = $('#dataTablo').dataTable({
        "dom": '<"top">frt<"bottom">pl<"clear">',
        //"dom": '<f<t>pl>',
        "processing": true,
        "language": {
            //"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Turkish.json"
            "sDecimal": ",",
            "sEmptyTable": "Tabloda herhangi bir veri mevcut değil",
            "sInfo": "_TOTAL_ kayıttan _START_ - _END_ arasındaki kayıtlar",
            "sInfoEmpty": "Kayıt yok",
            "sInfoFiltered": "(_MAX_ kayıt içerisinden bulunan)",
            "sInfoPostFix": "",
            "sInfoThousands": ".",
            "sLengthMenu": "Sayfada _MENU_ kayıt göster",
            "sLoadingRecords": "Yükleniyor...",
            "sProcessing": '<div class="m-loader m-loader--brand" style="width: 30px; display: inline-block;"></div>',
            "sSearch": "Ara:",
            "sZeroRecords": "Eşleşen kayıt bulunamadı",
            "oPaginate": {
                "sFirst": "İlk",
                "sLast": "Son"
                //"sNext": "Sonraki",
                //"sPrevious": "Önceki"
            },
            "oAria": {
                "sSortAscending": ": artan sütun sıralamasını aktifleştir",
                "sSortDescending": ": azalan sütun sıralamasını aktifleştir"
            },
            "select": {
                "rows": {
                    "_": "%d kayıt seçildi",
                    "0": "",
                    "1": "1 kayıt seçildi"
                }
            }
        },
        "bServerSide": true,
        "sAjaxSource": "/Uye/UyeListe",
        "sServerMethod": "POST",
       "aoColumns": [
            { "mData": "IslemText" , "orderable": false },
            { "mData": "Unvan" , "orderable": false },
            { "mData": "AdSoyad" },
            { "mData": "Eposta", "orderable": false },
            { "mData": "TelefonNo", "orderable": false},
            { "mData": "DurumText", "orderable": false}
        ]
    });
</script>


Controller tarafı

public string UyeListe(string sEcho, int iDisplayStart, int iDisplayLength, string sSearch, int iColumns, int iSortingCols, int iSortCol_0, string sSortDir_0, string sColumns)
        {
            object odaId = null;
            if (Convert.ToInt32(Session["KULLANICIROLID"]) >= 4)
            {
                odaId = Session["KULLANICIODAID"];
            }
            else
            {
                odaId = null;
            }
            var veri = Islem.Uye.Listele(odaId: odaId, durum: 1);
            sSearch = sSearch.ToLower();
            int totalRecord = veri.Count();
            var result = veri;
            if (!string.IsNullOrEmpty(sSearch))
            {
                result = veri.Where(x => x.AdSoyad.ToLower().Contains(sSearch) || x.Eposta.ToLower().Contains(sSearch)).OrderBy(a => a.UyeId).Skip(iDisplayStart).Take(iDisplayLength).ToList();
            }
            else
            {
                result = veri.OrderBy(x => x.UyeId).Skip(iDisplayStart).Take(iDisplayLength).ToList();
            }
            var sortColumnIndex = iSortCol_0;
            var sortDirection = sSortDir_0;
            if (sortColumnIndex == 2)
            {
                result = sortDirection == "asc" ? veri.OrderBy(x => x.AdSoyad).Skip(iDisplayStart).Take(iDisplayLength).ToList() : veri.OrderByDescending(x => x.AdSoyad).Skip(iDisplayStart).Take(iDisplayLength).ToList();
            }
            DataTable dtVeri = Helpers.Araclar.DataTableYap(result);         
            if (dtVeri != null)
            {
                for (int i = 0; i < dtVeri.Rows.Count; i++)
                {
                    DataRow dr = dtVeri.Rows[i];
                    string unvan = dr["Unvan"].ToString();
                    string dataOdaId = dr["OdaId"].ToString();
                    string uyeAdSoyad = dr["AdSoyad"].ToString();
                    string uyeId = dr["UyeId"].ToString();
                    string durum = "";
                    string islem = "";
                    if (Convert.ToInt32(dr["Durum"]) == 1)
                    {
                        durum = "<span class=\"m-badge m-badge--brand m-badge--wide\">Aktif</span>";
                    }
                    else
                    {
                        durum = "<span class=\"m-badge m-badge--danger m-badge--wide\">Pasif</span>";
                    }
                    dr["Unvan"] = "<span title=" + unvan + "\" style=\"width: 235px;\"><a href=\"/Oda/Detay/" + dataOdaId + "\" class=\"m-link\">" + unvan + "</a></span>";
                    dr["AdSoyad"] = "<span title=" + uyeAdSoyad + "\" style=\"width: 235px;\"><a href=\"/Uye/Detay/" + uyeId + "\" class=\"m-link\">" + uyeAdSoyad + "</a></span>";
                    dr["DurumText"] = durum;
                    islem += "<span style=\"overflow: visible; position: relative; width: 235px;\">";
                    islem += "<div class=\"dropdown\" style=\"display:inline-block\">";
                    islem += "<a href =\"#\" class=\"btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill\" data-toggle=\"dropdown\"><i class=\"la la-ellipsis-h\"></i></a>";
                    islem += "<div class=\"dropdown-menu dropdown-menu-right\">";
                    islem += "<a class=\"dropdown-item\" href=\"/Uye/Detay/"+uyeId+"\"><i class=\"la la-arrow-right\"></i>Detayı Gör</a>";
                    islem += "<a class=\"dropdown-item\" href=\"#\" data-toggle=\"modal\" data-target=\"#m_modal_4Yorum\" onclick=\"UyeNotEkle("+uyeId+");\"><i class=\"la la-comment-o\"></i> Not Ekle </a>";
                    islem += "<a class=\"dropdown-item\" href=\"#\" data-toggle=\"modal\" data-target=\"#m_modal_4UyeNot\" onclick=\"UyeNotu("+uyeId+");\"><i class=\"la la-comments\"></i> Notu Gör </a>";
                    islem += "<a class=\"dropdown-item\" href=\"#\" data-toggle=\"modal\" data-target=\"#m_modal_5UyeDosya\" onclick=\"UyeDosya("+uyeId+");\"><i class=\"la la-file-archive-o\"></i>Dosyalar </a>";
                    islem += "</div>";
                    islem += "</div>";
                    islem += "<a href =\"/Uye/Duzenle/"+uyeId+"\" class=\"m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill\" title=\"Düzenle\"><i class=\"la la-edit\"></i></a>";
                    islem += "</span>";
                    dr["IslemText"] = islem;
                }
            }
            result = Helpers.Araclar.ListeYap<Uye_Oda>(dtVeri);
            StringBuilder sb = new StringBuilder();
            sb.Clear();
            sb.Append("{");
            sb.Append("\"sEcho\": ");
            sb.Append(sEcho);
            sb.Append(",");
            sb.Append("\"iTotalRecords\": ");
            sb.Append(totalRecord);
            sb.Append(",");
            sb.Append("\"iTotalDisplayRecords\": ");
            sb.Append(totalRecord);
            sb.Append(",");
            sb.Append("\"aaData\": ");
            sb.Append(JsonConvert.SerializeObject(result));
            sb.Append("}");
            return sb.ToString();
        }

0

ASP.NET MVC VIEWDATA VEYA VIEWBAG İLE TAŞINAN VERİLERİN HTML VE JAVASCRIPT İÇİNDE TÜRKÇE KARAKTER SORUNU

Perşembe, Ağustos 23, 2018 / / , , , , ,

Asp.net Mvc ile View tarafına ViewData veya ViewBag ile veri taşırken Türkçe karakterler doğru görüntülenmiyor. Bu sorunu gidermek için veriyi Html.Raw ile kullanmak gerekiyor.

Aşağıda ViewData ile gelen veriyi Javascript içinde kullandık.


var varsayilanSemtMahSecenekAd = "@Html.Raw(@ViewData["KayitliOrtakSemtMahAd"])";

0

ASP.NET MVC AJAX PARTIAL VIEW YENİLEME REFRESH

Pazar, Ağustos 27, 2017 / / , , , , , ,

Asp.net Mvc'de bir PartialView sayfasını Jquery Ajax kullanarak yenileme. Partial View sayfamızda yenilenmesini istediğimiz bir tablomuz olsun. Bu tablo Jquery Datatable eklentisini kullansın. Gönderdiğimiz filtreye göre tablomuz yenilensin.

Jquery DataTable eklentisi listelenmiş veriler arasında kendisi filtreleme yapabiliyor fakat bu filrelemeyi yüklenmiş veriler üzerinde gerçekleştiriyor. Yani Pasif olanları göster dediğimde kendisine doldurulmuş olan tüm veriler arasından pasif kriterine uyanları listeliyor. Bu durum performans kaybına sebep olduğundan Ajax yenileme tekniğini kullanarak yapılan seçime göre tablonun yeni verilerle dolmasını sağlayacağız.



Partial View'ın çağrılacağı asıl sayfamız..

....
<div id="tabloBolum">
                @Html.Partial("_PartialDataTable")
            </div>
....


_PartialDataTable isimli Partial View saymaızdaki tablo yerleşimi ve ViewBag.TabloVeri ile verilerin gösterimi

....
<table class="m-datatable" id="dataTablo" width="100%">
    <thead>
        <tr>
            <th title="#" data-field="RecordID">
                <label class="m-checkbox m-checkbox--solid m-checkbox--brand cbSecim" style="margin-left:2px;">
                    <input type="checkbox" name="cbSecTumu" id="cbSecTumu">
                    <span></span>
                </label>
            </th>
            <th title="Field #1" data-field="Islem">İşlem</th>
            <th title="Field #2" data-field="Sayfa">Sayfa</th>
            <th title="Field #3" data-field="NodId">NodId</th>
            <th title="Field #4" data-field="SayfaTip">SayfaTip</th>
            <th title="Field #5" data-field="Durum">Durum</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in ViewBag.TabloVeri)
        {
            <tr>
                <td>
                    <label class="m-checkbox m-checkbox--solid m-checkbox--brand">
                        <input type="checkbox" name="cbSecim[]" id="cbSecim[]" value="@item.SayfaId" class="cbSecim @item.SayfaId">
                        <span></span>
                    </label>
                </td>
                <td ..........


_PartialDataTable isimli Partial View sayfamızdaki Ajax işlemini yapacak script bloğu..


<script type="text/javascript">
//seçim yapıldıkça çağrılacak fonksiyonumuz
    function TabloListele() {
        var secilenDurum = $("#m_form_status").val();
        var data = { seciliDurum: secilenDurum };
     
        $.ajax({
            url: '@Url.Action("TabloListe", "Sayfa")',
            type: "POST",
            data: JSON.stringify(data),
            contentType: 'application/json',
            success: function (result) {
                $("#tabloBolum").html(result);
                $("#m_form_status").val(secilenDurum);
            }
        });
    }
</script>



Sayfa Controller içindeki TabloListe isimli Action..

        [HttpPost]
        public PartialViewResult TabloListe(string seciliDurum)
        {
            object durum = 1;
            if (seciliDurum == "Pasif")
            {
                durum = 0;
            }
            else if (seciliDurum=="Tumu")
            {
                durum = null;
            }
            else
            {
                durum = 1;
            }
            var model = Islem.Sayfa.Listele(durum: durum);
            ViewBag.TabloVeri = model;
            return PartialView("_PartialDataTable", ViewBag.TabloVeri);
        }



Gerekli Jquery ve Datatable eklentisi scriptlerinizi ilave etmelisiniz..

0

Asp.net Jquery AutoComplete Otomatik Tamamlama

Salı, Haziran 28, 2016 / / , , , ,

//Arama TextBox

<asp:TextBox ID="txtArama" runat="server" CssClass="arama" autocomplete="off"></asp:TextBox>   

//Kullanılan js ve css

    <script src="js/jquery.js"></script>
    <script src="js/jquery-ui.min.js"></script>
    <link href="js/jquery-ui.min.css" rel="stylesheet" />

//JavaScript

<script type="text/javascript">
        $(document).ready(function () {
            $("#<%=txtArama.ClientID %>").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        url: 'WebAra.aspx/UrunGetir',
                        data: "{ 'arananKelime': '" + request.term + "'}",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            response($.map(data.d, function (item) {
                                return {
                                    label: item.split('-')[0],
                                    val: item.split('-')[1]
                                }
                            }))
                        },
                        error: function (response) {
                            //alert(response.responseText);
                        },
                        failure: function (response) {
                            //alert(response.responseText);
                        }
                    });
                },
                select: function (event, ui) {
                    var gidilecekItemUrl = ui.item.val;
                    window.location.href = 'Urun.aspx?' + gidilecekItemUrl;
                },
                minLength: 1
            });
        });
    </script>


//WebAra.aspx


[WebMethod(EnableSession = true)] //webmethod içinde session kullanmak gerekirse (EnableSession = true)
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string[] UrunGetir(string arananKelime)
{
List<string> urunler = new List<string>();

//HttpContext.Current.Session["VERITABANI_ADI"].ToString() //WebMethod içinde Session kullanımı
//arananKelime sorguda ilgili yere

//DataTable dt = ...
//DataRow dr = ...
string urunUrl = "kategoriId=" + dr["KategoriId"].ToString() + "&urunId=" + dr["UrunId"].ToString();
string urunAd = dr["UrunAd"].ToString();
urunler.Add(string.Format("{0}-{1}", urunAd, urunUrl));
return urunler.ToArray();
}

0

FANCYBOX IFRAME PENCERESİ İÇİNDE TIKLANAN BUTON SONRASI IFRAME'İN KOD TARAFINDAN KAPATILIP, ASIL SAYFANIN YENİLENMESİ

Cumartesi, Haziran 11, 2016 / / , , ,

Asıl Sayfamız

        <script type="text/javascript">
            $(document).ready(function () {
                //fancybox
                $(".various").fancybox({
                    maxWidth: 850,
                    maxHeight: 650,
                    fitToView: false,
                    width: '70%',
                    height: '70%',
                    autoSize: false,
                    closeClick: false,
                    openEffect: 'none',
                    closeEffect: 'none',
                    afterShow: function () {
                        $('.fancybox-iframe').contents().find('#button').click(function () {
                            window.parent.location.reload();
                        });
                    }

                });
            });
    </script>

Iframe içinde ilgili yere;

Yapılacak işlemler sonrası Fancybox Iframe penceresini kod tarafından kapatmak için aşağıdaki kod kullanılabilir.

ScriptManager.RegisterStartupScript(this, GetType(), "", "parent.$.fancybox.close();", true); 

0

Fancybox eklentili kullanışlı bir thumbnail galeri

Cuma, Ekim 24, 2014 / /

Fancybox eklentili kullanışlı bir Jquery thumbnail galeri


<script src="js/jquery.js"></script>
<script src="js/fancybox/jquery.fancybox.js?v=2.1.4" type="text/javascript"></script>
<script src="js/fancybox/jquery.mousewheel-3.0.6.pack.js" type="text/javascript"></script>
<link href="js/fancybox/jquery.fancybox.css?v=2.1.4"" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready(function () {
//imajGaleri
$(".gorsel").click(function () {
var secilenGorsel = $(this).attr("href");
$('#gorselIzle').hide();
$('#gorselIzle').show();
$("a[rel]").attr('rel', 'galeri');
$("a[href='" + secilenGorsel + "']").attr('rel', '');
$('#gorselIzle').html('<a href="' + secilenGorsel + '" rel="galeri" class="fancybox" title=""><img src="' + secilenGorsel + '" alt=""/></a>');
return false;
});
var galeriIlkGorsel = $('#gorselIzle img').attr('src');
$("a[href='" + galeriIlkGorsel + "']").addClass("aktif"); //ilk görsele aktif classı ekle. Galeride iki kez görünmesin.
$(".gorsel").not(".aktif").attr('rel', 'galeri'); //aktif classı dışındakileri galeriye dahil et.

//imajGaleriye fancybox
$('.fancybox').fancybox();
});
</script>

<div id="gorselIzle">
<a href="images/upload/1.png" rel="galeri" class="fancybox" title=""><img src="images/upload/1.png" alt="" /></a>
</div>
<a href="images/upload/1.png" rel="" class="gorsel fancybox"><img src="images/upload/1.png" class="thumb" border="0"/></a>
<a href="images/upload/2.png" rel="" class="gorsel fancybox"><img src="images/upload/2.png" class="thumb" border="0"/></a>

←
SON YORUMLAR