ASP.NET AJAX Control Toolkit Mayıs 2012 sürümü indirmek için  ajaxcontroltoolkit.codeplex.com linkini tıklayınız.  
 

 

 

Asp.Net & Jquery

 

  Jquery' nin o kadar nimetleri var ki bugün size çok kullandığımız fonksiyonundan bahsedeceğim. Asp.Net kontrollerindeki bazı değerleri alabilmek için javascript ile document.getElementByID("id").value fonksiyonunu kullanıp değerimizi alıyoruz. Bunu gelelim birde jquery ile yazalım.

Kullanacağımız kontrolleri ekleyelim.

<textarea id="txtArea_mesaj" cols="20" rows="1"></textarea><br />
            <br />
            <asp:TextBox ID="txt_mesajServer" runat="server"></asp:TextBox><br />
            <br />
            <asp:Button ID="btn_kopyala" runat="server" Text="kopyala" OnClientClick="javascript:MesajKopyala();return false;" /><br />
            <br />
            <asp:TextBox ID="txt_mesajKopyasi" runat="server"></asp:TextBox><br />
            <br />
            <input id="txt_mesajKopyasiHtml" type="text" /><br />
            <br />
            <span id="spn_mesaj">Mesaj boş ...</span>

Kontrolleri ekledikten sonra script dosyamızı ekleyelim. Ben burada Asp.Net Jquery CDN kullandım. Bunu kullanmamdaki amaç ise; sayfalarimizda kullandigimiz AJAX kutuphanelerimizi (jQuery ve ASP.Net Ajax) ucretsiz olarak tum dunyada bir cok farkli ulkeye yerlestirilmis serverlar uzerinde cacheleyebilmemizi sağladığı için tercih ettim.

Daha detaylı bilgi için : Microsoft Ajax Content Delivery Network

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.2.js"></script>

Değer alma ve atama işlemlerini yapacağımız scriptimizi yazalım.

<script type="text/javascript">
        function MesajKopyala() {
            var mesajHtml = $("#txtArea_mesaj").val(); //get value  (html control)
            var mesajSvr = $("#<%=txt_mesajServer.ClientID%>").val(); //get value (server control)
            var mesaj = mesajHtml + " " + mesajSvr;
            $("#<%=txt_mesajKopyasi.ClientID%>").val(mesaj); //set value (server control)
            $("#txt_mesajKopyasiHtml").val(mesaj); //set value (html control)
            $("#spn_mesaj").html(mesaj); //set value (html control)
            return false;
        }    
    </script>

Jquery ve Asp.Net Kontrolleri:Değer Atama ve Alma

Görüldüğü gibi istediğimiz kontolün id'sini kullanarak değerini alıp, başka kontrollere atamayı bu şekilde yapabiliriz.

Örnek uygulamayı indirmek için jquerySetGetValue.rar (2,82 kb) tıklayınız.

 

Asp.Net & Jquery

  Herkese ilk önce başka bir binary günden merhaba demek istiyorum Smile (01.11.2011) Özellikle web projelerimizde çok kullandığımız asp.net gridview için hepimiz belli başlı özelliklere göre filtreleme işlemleri yapmaktayız. Bu işlemleri yaparken bazen sql procedurelere bazen codebehind tarafındaki kodlarımıza sayesinde yaparız. Alternatif seçenek aslında oldukça çok. Fakat basit bir filtreleme işlemi için sistemi yormadan ve en hızlı bir şekilde yapmak için velinimetimiz olan Jquery hemen imdadımıza yetişir. Jquery.quicksearch plugini sayesinde çok rahat ve hızlı bir şekilde istediğimiz aramayı gerçekleştirebiliriz. Bunu küçük bir örnek ile açıklarsak ;

<asp:TextBox ID="id_search" runat="server" placeholder="Search">
</asp:TextBox>

Filtreleme yapmak için bir tane textbox ekledik. Ardından hemen listelenecek olan veriler için xml data file eklenir.

<asp:XmlDataSource ID="productsDataSource" Runat="server" DataFile="~/App_Data/Products.xml"> 
</asp:XmlDataSource>

Sonra verileri listeleyeceğimiz gridview eklenir ve onprerender parametresine codebehind tarafında yazacağımız fonksiyonun adı yazılır.

<asp:GridView ID="grd_telefonDurumu" Runat="server" 
        DataSourceID="productsDataSource" AutoGenerateColumns="False" 
        ClientIDMode="Static" onprerender="grd_telefonDurumu_PreRender" >
        <Columns>
            <asp:BoundField HeaderText="" DataField="ProductID" 
                            SortExpression="ProductID" ItemStyle-HorizontalAlign="Center"></asp:BoundField>
            <asp:BoundField HeaderText="Model" DataField="ProductName" 
                            SortExpression="ProductName"></asp:BoundField>
            
            <asp:BoundField HeaderText="Fiyat" DataField="UnitPrice" 
                            SortExpression="UnitPrice"></asp:BoundField>
            <asp:BoundField HeaderText="Stok(Adet)" DataField="UnitsInStock" 
                            SortExpression="UnitsInStock"></asp:BoundField>
        </Columns>
    </asp:GridView>


Codebehind tarafına geçip aşağıdaki kodlar yazılır. Bunu yapmamızdaki neden ise; gridview sonuçta bir table olarak bize dönüş yapıyor. Biz, jquery quicksearch eklentisini kullanırken, gridview içinde arama yaparken headerlara takılmaması için tablo yapısını <thead></thead> ve <tbody></tbody> şeklinde ikiye ayırıyoruz. Böylece tbody içinde arama yapıp istediğimiz sonuca ulaşıyoruz.

protected void grd_telefonDurumu_PreRender(object sender, EventArgs e)
    {
        if (grd_telefonDurumu.Rows.Count > 0)
        {
            grd_telefonDurumu.UseAccessibleHeader = true;
            grd_telefonDurumu.HeaderRow.TableSection = TableRowSection.TableHeader;
        }
    }

Buraya kadar işlemlerimiz tamamladıysak artık Jquery kısmına geçelim. Hemen kullandığımız script dosyalarını ekleyelim.

<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="Scripts/jquery.quicksearch.js" type="text/javascript"></script>

Ardından arama scriptimizi yazalım.

<script type="text/javascript">
        $(function () {
            $('input#id_search').quicksearch('table#grd_telefonDurumu tbody tr');
        })
    </script>

Plugin sayesinde gridview içinde istrediğimizi aramak bu kadar basit. Plugini kendi istediğiniz şekilde, daha etkili bir biçimde kullanabilirsiniz.

 

Jquery ile Asp.Net Gridview Filtreleme İşlemleri

 

Quicksearch plugini keşfetmek istiyorsanız burayı, örnek uygulamayı indirmek istiyorsanız quicksearch.rar (34,65 kb) tıklayınız.

 

Oracle Data Provider For .NET

 

  Windows Server 2008 R2 üzerine IIS 7 kurulu sistemizde yeni oluşturduğumuz bir web sitesini çalıştırdığımızda aldığımız hatayı ve nasıl çözdüğümüzü bahsedeceğim.İlk önce çalıştıracağımız bir web sitesi için, application pool tanımladık. Sonra yeni bir site ekleyerek, tüm dosyalarımızı attık. Web sitemizi, tanımladığımız application pool ile eşleştirdik. Eğer application pool oluşturmadıysak, web sitemizin application pool'u olarak Classic .NET AppPool seçiyoruz. Buraya kadar hepimizin yaptığı ufak bilgileri verdim. Emin olduktan sonra , oluşturduğumuz web sitemizi sağ tıklayıp, manage web site -> Browse dedikten sonra şöyle bir hata ile karşılaştık.

  -> System.Data.OracleClient requires Oracle client software version 8.1.7 or greater.

Database bağlantıları için System.Data.OracleClient kütüphanesini kullanıyoruz. Aldığımız bu hatayı çözmek için şu yolları takip edip olumlu netice aldık.

- İlk önce .NET için Oracle Data Provider'ı kurduk. Burada sürümlere dikkat edelim. Bizimkisi 11g sürümü idi.

Kurmak için : http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

x86 : http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html

x64 : http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

Not: İndirebilmek için oturum açmanız gerekmektedir.

Ek: Visual Studio için Oracle Developer Tools indirmek isteyenler buraya tıklayınız.

- Kurulum bittikten sonra sitemize gelip, sağ taraftaki ' Actions ' seçeneğini üzerindeki, ' edit permissions ' tılayıp, ' Security -> Edit ' dediğimizde gruplar veya kullanıcı isimleri listelenmektedir. Biz burada, Oracle klasörü için  'Internet Guest Account (IUSR_) ' ve ' Everyone ' için read & execute izinlerini veriyoruz.

 

 

Bu işlemleri yaptıktan sonra sitemizi manage web site -> Browse dedikten sonra çalıştırabiliriz.

 

Kaynak : forum.asp.net

 

HTTP Error 500.22 - Internal Server Error

 

  IIS 6.0 üzerinde .Net Framework 2.0 alt yapısı ile yaptığım bir projeyi bazı kullanmam gereken modüller yüzünden .Net Framework 4.0 alt yapsıyla yeniden düzenledim. Localhost' ta her zaman ki gibi güzel neticeler alırken , kodlarımı server'a taşıdığımda tabi ki " HTTP Error 500.22 - Internal Server Error " hatası aldım Surprised Malum server'a kodlarımızı taşırken hata almazsak olmaz Smile

Peki bu sorunu nasıl çözdük ?

- Tabiki hemen msdn imdadımıza yetişti. Burada ki yazılan cevabı okuduğumuzda web.config dosyasında bulunan IIS 7.x 'de <system.web> içindekilerini  <system.webServer> içine yazmamız gerektiği ve <system.web> içinde bulunan modules/handlers ( modüller/işleyiciler ) silmemizi söylemektedir. 

- Bu da IIS 7.x'in modüler yapısının getirilerinden bir tanesi. Modül ve handler yapılarını managed code ile ekleyebilmek IIS 6.0 'dan farklı olarak eklenmiş özelliklerdir.

 

Kaynak : msdn.microsoft.com