ASP.Net - EVAL İLE IF - ELSE IF - ELSE YAPISI

Diyelim ki veritabanımızdaki bir tabloda tur adlı bir sütunumuz var ve bit tipinde. Bunu kod tarafında bir dropdown elementinden seçtiriyoruz ve value kısmı 0 veya 1 şeklinde. Bu değerlere göre veritabanına farklı ifadeler kaydediyoruz. Sonrasında bu değerleri gösterirken 0 veya 1 şeklinde değil de nvarchar ifadeleri şeklinde göstermek istersek ( aynı zamanda başka verilerimiz de olsun ve bu alanın repeaterın içinde kaldığını varsayalım. ) repeater içinde bu ifadelerin değerlerine göre string ifadeleri nasıl yazdırırız ?

Normalde Repeater elementinden gelen verilerimizi ilgili yerlere doldurma işlemini yaparken sütunların nerelere yerleşeceğini Eval kelimesiyle belirliyorduk. Örneğin tasarım kısmında tur alanını gösterirken,

<%#Eval("tur")%>    şeklinde yazarız. Fakat bu şekilde yazdığımızda veritabanında tur alanını bit olarak belirlediğimizden karşımıza çıkan sonuç 0 veya 1 olan sayılar olacaktır.

Bu 0 veya 1 e karşılık gelen string ifadeleri yazdırmak için Eval cümleciğini şöyle değiştirelim;


<%# Eval("tur").ToString() == "0" ? "Genel Özellik" : Eval("tur").ToString() == "1" ? "Teknik Özellik" : "" %>

Bu cümlecik ile veritabanından gelen tur alanını string ifadeye çevirip 0 ile karşılaştırdık. Eğer gelen ifade 0 ise "Genel Özellik", 1 ise "Teknik Özellik" ifadelerinin görünmesini sağladık. Böylece İlk Eval cümlesi ile if koşulunu ikincisi ile else if koşulunu ve son olarak da boş string ("") olarak  da else koşulunu belirlemiş olduk.


Aynı zamanda Eval cümlesini karşılaştırdığımız string ifadenin içine html taglerini de yerleştirip bunlara style belirleyebiliriz. Örneğin ;

<%# Eval("tur").ToString() == '<span style="font-color:darkred;">0</span>' ? "Genel Özellik" : Eval("tur").ToString() == "1" ? "Teknik Özellik" : "" %>


şeklinde yazarak string ifadeyi biçimlendirebiliriz.

İyi çalışmalar.

4 yorum:

  1. eval ile if-else yapısını kuramıyordum. sayenizde öğrendim. teşekkürler

    YanıtlaSil
    Yanıtlar
    1. Merhaba, faydalanmanıza sevindim, çalışmalarınızda başarılar dilerim.

      Sil
  2. merhaba ahref linkinin içine eval ile if else yapısını uyguladım sorun yok eğitim ücreti sıfırsa eğitime kayıt ol yazıyor değilse eğitimi satın al yazıyor aynı uygulamayı a href linkinini içine uygulamak istiyorum tırnak işaretlerinin içine sıfırsa ucrestizeğitimal/seo ya gidecek değilse eğitimal/seo ya gidecek ama birde hrefin tırnak işaretlerinin içerisine yazdıgım kod hata veriyor orada nasıl kullanabilirim dogrusu nasıl olur rica etsem yardımcı olurmusunuz

    YanıtlaSil
    Yanıtlar
    1. Merhaba, büyük ihtimalle Eval ile kontrol ettiğiniz alanın tipini dönüştürmediğiniz için hata ile karşılaşıyorsunuz.

      a href=<%#Convert.ToInt32(Eval("ucret")) == 0 ? "ucrestizeğitimal/seo" : "eğitimal/seo" %>

      Eval in içindeki alan integer ise yukarıdaki satırda olduğu gibi dönüşüm yapmanız gerekir. Eğer money tipinde ise Convert.ToDouble kullanabilirsiniz.

      Sil

Blogger tarafından desteklenmektedir.