Merhaba Arkadaşlar.

Yaptığım Projede Jquery ile autocomplete uygulaması kullandım. Veritabanımda ÜRÜN ADI ve RESIM Bölümleri Mevcut.

Siemens Gigaset A585 | e3894c4f-32b4-414e-b38b-55e19ab4e5df.png Duvar Posteri Sahil ve Çiçekler | e754190e-53d8-4038-8c52-4cb229a6b32a.png

Verileri Aşağıdaki Kod İle Sayfaya Gönderiyorum..

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Dim prefixText As String = context.Request.QueryString("q")
    Dim conn As SqlConnection = New SqlConnection
    conn.ConnectionString = "Server=serverId;Database=dbname;User Id=user;Password=passs;"
    Dim cmd As SqlCommand = New SqlCommand
    cmd.CommandText = ("select ProductCode, ProductName, Images from vw_urunler where " & _
                       "ProductName like @SearchText + '%'")
    cmd.Parameters.AddWithValue("@SearchText", prefixText)
    cmd.Connection = conn
    Dim sb As StringBuilder = New StringBuilder
    conn.Open()
    Dim sdr As SqlDataReader = cmd.ExecuteReader

    While sdr.Read
        sb.Append(String.Format("{0} -{1}{2}", sdr("ProductName"), sdr("Images"), Environment.NewLine))
    End While
    conn.Close()
    context.Response.Write(sb.ToString)
End Sub

aspx sayfasından da bu şekilde verileri çekiyorum

 <script type="text/javascript">
    $(document).ready(function () {
        $("#<%=txtSearch.ClientID%>").autocomplete("webing.ashx", {
            width: 400,
        formatItem: function (data, i, n, value) {
            return "<img style = 'width:50px;height:50px; vertical-align:middle;' src='Uploads/productsimages/"+ value.split("-")[1] + "'/> "+ value.split("-")[0];
        },
        formatResult: function (data, value) {
            return value.split("-")[0];
        }
    });
});

</script>

Veritabanımdaki Resimleri Şu Şekilde Adlandırarak Tutuyorum

9a2922b4-dbe5-4dd2-9e41-8e59cf68e7d9.png

resim ismi içinde " - " olduğundan img url si şu şekilde oluyor.

<img style="width:50px;height:50px; vertical-align:middle;" src="Uploads/productsimages/9a2922b4">

Sadece Bold Olan Bölüm Geliyor 9a2922b4-dbe5-4dd2-9e41-8e59cf68e7d9.png

Uğraşmaktan Başım Ağırmaya Başladı. Çözüm Belki Basittir Ama Kitlendim. Yardımcı Olabilecek Arkadaşlara Çok Teşekkür Ederim

soruldu: 09 Şub '15, 08:12

webing's gravatar image

webing
56678
cevap kabul oranı: 33%

değiştirildi: 09 Şub '15, 12:37

Turgay%20Can's gravatar image

Turgay Can
8.4k63799


String.Format("{0} -{1}{2}", sdr("ProductName"), sdr("Images"), Environment.NewLine)

webing.ashx'in göndereceği string burada üretiliyor anladığım kadarıyla. Veritabanı sorgusu sonucunda iki satır verin olduğunu düşünsek, ResponseWrite çıktısı şöyle olmalı bu formata göre :

Siemens Gigaset A585 -9a2922b4-dbe5-4dd2-9e41-8e59cf68e7d9.png\\r\\n
Duvar Posteri Sahil ve Çiçekler -e754190e-53d8-4038-8c52-4cb229a6b32a.png

Şimdi bu stringleri "-" baz alarak split etsek değerler şöyle olurdu : ( var res = value.split("-"); ) res[0] = "Siemens Gigaset A585" res[1] = "9a2922b4" res[2] = "dbe5" res[3] = "4dd2" res[4] = "9e41" res[5] = "8e59cf68e7d9.png\r\nDuvar Posteri Sahil ve Çiçekler " res[6] = e754190e

... diye uzar. Şimdi oluşturduğun linke bakalım :

src='Uploads/productsimages/"+ value.split("-")[1] + "'/> "+ value.split("-")[0]

yani bu aslında şu demek : <img src=uploads/productsimages/9a2922b4>Siemens Gigaset A585</img>

Çözüm için iki seçenek var, ya resim dosyasındaki adlandırmada "-" kullanmamalısın ya da webing.ashx tarafında sonuç stringini oluştururken farklı bir ayraç kullanmalısın.

Şu yöntem iş görebilir :

Response.Write(string.Format("{}#{}|"),sdr("ProductName"), sdr("Images"))

Burdan üretilen stringler şöyle çıktı verir :

Siemens Gigaset A585#e754190e-53d8-4038-8c52-4cb229a6b32a.png|Duvar Posteri Sahil ve Çiçekler#e754190e-53d8-4038-8c52-4cb229a6b32a.png

Bu stringi split("|") ile ürün bazında, ürün içinde de split("#") resim ve isim olarak ikiye bölebilirsin. Tabi ürün isimlerinde bu karakterlerin kullanılmadığını varsayarsak. Çözüm acele oldu daha iyi bir karakter seçimi yada çözüm düşünebilirsin. Şu anlık sıkıntı yanlış split karakteri seçmekte diye düüşünüyorum.

permanent link

cevaplandı: 09 Şub '15, 17:27

ersinyildiz's gravatar image

ersinyildiz
2.8k31438
cevap kabul oranı: 28%

imaj isimdede '-' işareti olduğu için aşağıdaki kodunuzda '-' işareti yerine başka bir karakter kullanınız.

sb.Append(String.Format("{0} -{1}{2}", sdr("ProductName"), sdr("Images"), Environment.NewLine))

ayrıca aşağıdaki split metodlarında da yeni kullandığınız karakteri kullanarak deneyiniz.

return "<img style = 'width:50px;height:50px; vertical-align:middle;' src='Uploads/productsimages/"+ value.split("-")[1] + "'/> "+ value.split("-")[0];

aşağıdaki formatResult kısmındaki '-' işaretininde değişmesi gerekebilir. formatResult: function (data, value) { return value.split("-")[0]; }

permanent link

cevaplandı: 09 Şub '15, 17:22

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.7k103691
cevap kabul oranı: 28%

Sayın Müslüm ÖZTÜRK ve yatagan; Öncelikle Engin bilgileriniz ve fikirleriniz için çok teşekkür ederim.

ikinizinde verdiği bilgiler doğrultusunda, split karakterlerini değiştirdiğimde sorun ortadan kalktı...

tekrar tekrar teşekkür ederim.

permanent link

cevaplandı: 09 Şub '15, 17:41

webing's gravatar image

webing
56678
cevap kabul oranı: 33%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×92
×7
×1

Soruldu: 09 Şub '15, 08:12

Görüntüleme: 537 kez

Son güncelleme: 09 Şub '15, 17:41

powered by BitNami OSQA