Çözüldü C# dropdownlistin seçili gelmesi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

khalannz7

Centipat
Katılım
18 Ağustos 2022
Mesajlar
525
Çözümler
7
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Merhaba, sayfamda bir tablo var ve tablomda her kullanıcı için bir Update butonu var. Update butonuma tıkladığımda bir modal açılıyor ve kullanıcının bilgileri hazır olarak geliyor, eğer değiştirilmek istenirse bunların üzerinden değiştiriliyor. @HTML. Textboxfor'larım için başarılı şekilde yaptım ama @HTML. Dropdownlistfor'larımı dolduramıyorum. Yani örneğin Hasan adında olan kullanıcının Update butonuna tıklanıyor ve listede Hasan otomatik olarak seçili geliyor. İstediğim bu. Ama jquery ile yazdığım kod çalışmıyor ve konsolda herhangi bir hata yok.

Kod:
 <button type="button" class="btn btn-success btn-update"
 data-id="@item.bakim_id"
 data-customer="@item.musteriAdSoyad"
 data-product="@item.urunAd"
 data-date="@item.alinanTarih.ToString("dd.MM.yyyy")"
 data-month="@item.ay">
 <i class="fas fa-edit"></i>
 </button>

DropDownList'lerimden sadece bir tanesi:

Kod:
 <div class="mb-3">
 <label for="repairProductInput" class="form-label">Ürün</label>
 @Html.DropDownListFor(m => m.Repairs.urunID, Model.ProductsList, "Bir Ürün Seçiniz", new {@class="form-control repair-inputs", id="repairProductInput", required="required"})
 </div>

Jquery Kodum:

Kod:
$(document).on('click', '.btn-update', function () {
 openModal(true);
 $("#repair_id").val($(this).data("id"));
 $("#repairCustomerInput").val($(this).data("customer"));
 $("#repairProductInput").val($(this).data("product"));
 $("#repairDateInput").val($(this).data("date"));
 $("#repairMonthInput").val($(this).data("month"));
});
 
Çözüm
Butonun data-product değerine şunu yazıp dener misin?

data-product="@item.urun_id"

Çalışmazsa bakımlar tablosundaki kayıtların ekran görüntüsü paylaş lütfen.
Mobildeyim kodun tamamını yazmayacağım.

DropDownList içinde option nodeları var. jQuery ile aranan optionu yakalaman lazım. Sonra o optionun selected prop unu true yapmalısın.

$(".dropdownlist1 option[value=$(this).data('product')]").attr("selected", true)
 
Mobildeyim kodun tamamını yazmayacağım.

DropDownList içinde option nodeları var. jQuery ile aranan optionu yakalaman lazım. Sonra o optionun selected prop unu true yapmalısın.

$(".dropdownlist1 option[value=$(this).data('product')]").attr("selected", true)
$("#repairProductInput option[value=$(this).data('product')]").attr("selected", true) Kodumu böyle değiştirdim hocam ama hala aynı acaba bir syntax hatası mı var?

$("#repairProductInput option[value=$(this).data('product')]").attr("selected", true) Kodumu böyle değiştirdim hocam ama hala aynı acaba bir syntax hatası mı var?
Şimdide böyle güncelledim kodumu hocam ama yine de olmadı.
$("#repairProductInput option[value='" + $(this).data('product') + "']").prop("selected", true);

Mobildeyim kodun tamamını yazmayacağım.

DropDownList içinde option nodeları var. jQuery ile aranan optionu yakalaman lazım. Sonra o optionun selected prop unu true yapmalısın.

$(".dropdownlist1 option[value=$(this).data('product')]").attr("selected", true)
Yardımcı olabilirseniz çok sevinirim hocam günlerdir aynı sorun ile uğraşıyorum bir türlü çözemedim...
 
Modal açıldığında repairProductInput içeriği dolu geliyor mu? Ben şunu anladım, modal açıldığında dropdown dan ilgili kaydı seçili yapmak istiyorsun. Doğru mu?

Şunu yapar mısın?

Buttonda ki "data-product" değerine urunID yi set et.
data-product="@item.urunID"

Tekrar çalıştırmayı dene.
 
Son düzenleme:
Modal açıldığında repairproductınput içeriği dolu geliyor mu? Ben şunu anladım, modal açıldığında dropdowndan ilgili kaydı seçili yapmak istiyorsun. Doğru mu?

Şunu yapar mısın?

Buttonda ki "data-product" değerine urunıd yi set et.
data-product="@item.urunID"

Tekrar çalıştırmayı dene.

Dediğiniz gibi yaptığımda, sayfam üzerinde sağ tıklayıp incele dediğimde data-product = 0 geliyor. Ama urunad kullandığımda ürün adını doğru şekilde alabiliyorum. Console.log ile de test ettiğimde butona tıkladığımda oradaki veriyi doğru şekilde alabiliyorum aslında, sorun şu ki seçili olarak gelmiyor.

Dediğiniz gibi yaptığımda, sayfam üzerinde sağ tıklayıp incele dediğimde data-product = 0 geliyor. Ama urunad kullandığımda ürün adını doğru şekilde alabiliyorum. Console.log ile de test ettiğimde butona tıkladığımda oradaki veriyi doğru şekilde alabiliyorum aslında, sorun şu ki seçili olarak gelmiyor.

Mesela insert ve Update için aynı modalı kullanıyorum ve "lütfen bir ürün seçiniz" kısmı geliyor normalde ilk açıldığında. Ama eğer Update için aynı modalı açarsam hiçbir şey gelmiyor. Yani karışık anlatmış olabilirim ama demek istediğim şu aslında bir şeyleri doğru yapıyorum ki "lütfen bir ürün seçiniz" gelmiyor. Ama bomboş geliyor işte.
 
JavaScript:
$(document).on('click', '.btn-update', function () {
 openModal(true);
// ....
})

openModal(true); bu fonksiyonun içeriğini paylaşabilir misin?

Hocam dışarıya çıkmak zorunda kaldım eğer müsait olursanız yarın konuşma şansınız var mı? Şöyle açıklamaya çalışayım aynı modalı kullandığım için openmodal(true) ise modal başlığını Update'ye göre ayarlayarak, openmodal(false) ise inserte göre ayarlayarak açıyor. Mesela insertten sonra inputları temizleyip modalı açık bırakıyorum ama Update'den sonra modalı kapatıyorum. Fonksiyonun içeriği o.

Kod:
function openModal(isUpdate) {
if (isUpdate) {
    modalTitle = "Bakım Güncelle";
    $("#crud_type").val("update");
} else {
    modalTitle = "Yeni Bakım Ekle";
    $("#crud_type").val("insert");
}
$('#insertUpdateModalLongTitle').text(modalTitle);
$('#insertUpdateModal').modal('show');

$(document).on('click', '.btn-new', function () {
openModal(false);

$(document).on('click', '.btn-update', function () {
openModal(true);
$("#repair_id").val($(this).data("id"));
$("#repairCustomerInput").val($(this).data("customer"));
$("#repairProductInput").val($(this).data("product"));
$("#repairDateInput").val($(this).data("date"));
$("#repairMonthInput").val($(this).data("month"));
JavaScript:
$(document).on('click', '.btn-update', function () {
 openModal(true);
// ....
})

openModal(true); bu fonksiyonun içeriğini paylaşabilir misin?
 
Son düzenleme:
Kayıt eklerken #repairproductınput dolu geliyor ama düzenleme yaparken içi boş doğru mu anladım?

Hayır hocam ikisinde de dolu geliyor. Yani başarılı şekilde veritabanında listeleniyor. Sorun şu Update butonuna tıkladığımda, kime tıkladıysam o dropdownlistlerin o kişinin veriylerile gelmesini istiyorum. Mesela tablomda Hasan diye bir kullanıcı var Hasan'ın sağındaki Update butonuna tıkladığımda modal açıldlığında dropdownlistte Hasan'ın seçili gelmesi gerekiyor.
 

Yeni konular

Geri
Yukarı