ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

Asp.Net JQuery ve JSON ile Resim Yükleme İşlemi

Veysel Uğur KIZMAZ
Javascript
13.08.2011 11:22:04
Hit : 4215

Bu makalemizde Asp.Net’te Jquery ve JSON kullanarak resim yükleniyor efekti nasıl veriliyor inceleyelim.

Yapacağımız işlem, Aspx sayfamızdaki butona tıkladığımızda buton kaybolup yerine 6 tane resim gelmesini sağlayacağız. Bu 6 resim yüklenirken yükleme efekti (resmi) ekranda görünecek, resmin yükleme işlemi tamamlanınca resim ekrana gelecektir.

Öncelikle resimleri alacağımız nesne türümüzü tanımlayalım.

JsonResim.cs

    public class JsonResim

    {

        public string Url { get; set; }

        public JsonResim(string url)

        {

            Url = url;

        }

    }

 

Burada Url ile resmin bulunduğu yer bilgisini tutuyoruz. Bunun dışında istersek title, alt gibi bilgilerini de alabiliriz.

Projemize yeni bir Web Form ekleyip CodeBehind tarafında resimlerimizi oluşturalım.

JsonImageView.aspx.cs

public partial class JsonImageView : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            if (Request.QueryString["resimEfekt"] == "true")

            {

                JavaScriptSerializer serializer = new JavaScriptSerializer();

                List<JsonResim> resimler = new List<JsonResim>

                {

                   new JsonResim("image/1.jpg"),

                   new JsonResim("image/2.jpg"),

                   new JsonResim("image/3.jpg"),

                   new JsonResim("image/4.jpg"),

                   new JsonResim("image/5.jpg"),

                   new JsonResim("image/6.jpg")

                };

 

                Response.Write(serializer.Serialize(resimler));

                Response.End();

            }

        }

    }

 

JavaScriptSerializer değişkenimiz sayesinde resimler nesnemizi javascript’in anlayacağı hale dönüştürüyoruz.

 

Şimdi aspx tarafındaki kodlarımızı inceleyelim.

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <style type="text/css">

        .resim

        {

            background-repeat:no-repeat;

            width:150px;

            height:150px;

            background-image:url(image/yukleniyor.gif) ;

            background-position : center;

        }

    </style>

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function () {

            $('#galeri').hide();

            $('#btGoster').click(function () {

                $('#galeri').show();

                $.getJSON("JsonImageView.aspx", { resimEfekt: true },

                function (data) {

                    $.each(data, function (i, resim) {

                        var yeniResim = $("<img>").attr("src", resim.Url).attr("width", 150).attr("height", 150).load(function () {

                                $(".resim:eq(" + i + ")").empty().append(yeniResim);

                        });

                    });

                });

            });

        });

    </script>

</head>

<body>

    <form id="form1" runat="server" method="post" action="JsonImageView.aspx">

    <div>

        <input id="btGoster" type="button" value="Resimleri Göster" />

        <table id="galeri">

            <tr>

                <td>

                    <div class="resim"></div>

                </td>          

                <td>           

                    <div class="resim"></div>

                </td>

                <td>

                    <div class="resim"></div>

                </td>

            </tr>    

            <tr>     

                <td> 

                    <div class="resim"></div>

                </td>        

                <td>         

                    <div class="resim"></div>

                </td>         

                <td>          

                    <div class="resim"></div>

                </td>

            </tr>

 

        </table>

    </div>

    </form>

</body>

</html>

 

  • İlk başta “galeri” tablomuzun görünümünü saklıyoruz.
  • btGoster butonumuza tıkladığımızda önce $.getJSON() methodu ile JsonImageView.aspx’ten gelecek olan veriyi alıyoruz ve function(data) fonksiyonunda data değişkeni ile bu veriyi kullanıyoruz.
  • $.each() methodu ile gelen verilerin (listenin) her elemanını tek tek işleme alıyoruz.
  • yeniResim değişkenimiz, resmimizi oluşturmamızı sağlamaktadır.
  • $(“.resim:eq(i) ile i. resim css classının verildiği dive ulaşıyoruz. Bu sayede tek tek her resim css classına sahip div’i işleme alıp resim ekliyoruz.

Kodumuzu çalıştırdığımızda ilk ekran görüntüsü aşağıdaki gibi olacaktır.

 

“Resimleri Göster” butonuna tıkladığımızda resimler yüklenene kadar “yukleniyor.gif” resmi gelecektir. Her resim yüklendikten sonra yukleniyor.gif’in yerine resim gelecektir.

Resimler yüklendikten sonra ekran görüntüsü aşağıdaki gibi olacaktır.

 

 

Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR