ASP#net etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ASP#net etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Microsoft – Internet Information Server (IIS) – Error – The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map

Geçenlerde yeni kurmuş olduğum bilgisayarımda IIS e web projemi deploy edip açmak istediğimde aşağıdaki hatayı verdi . IIS i açıp baktığımda ASP.NET feature larının olmadığını gördüm.

Microsoft – Internet Information Server (IIS) – Error – The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map

ASP.NET featurelarını eklemek için Windows Features i açtığımda ASP.NET feature larının tamamını göremedim .Bunun için biraz araştırma yaptıktan sonra command line dan bu featureların enable\disable yapılacağını öğrendim.


Yüklü olan featureların tamamını getirir.
dism /online /get-features /format:table


Adında "net" geçen featureları getirir.
dism /online /get-features /format:table | find /I "net"

dism /online /get-features /format:table | find /I "net" satırını command line da çalıştıralım.



Sonuçta görüldüğü gibi ASP.NET feature ları Disabled durumdadır. Şimdiki işlemimiz bunları enabled hale getirmek olacaktır.

 IIS-ASPNET    Featurelarını Enabled Yapma

Ekli featurelar için Syntax
dism /online /enable-feature /all /featurename:<feature-name> 

 IIS-ASPNET i Enabled Yapma
dism /online /enable-feature /all /featurename:IIS-ASPNET


 IIS-ASPNET v4.5 i Enabled Yapma
dism /online /enable-feature /all /featurename:IIS-ASPNET45

SONUÇ
Aşağıdaki ekranda da gördüğünüz gibi ASPNET feature larını Enabled hale getirdik.

IIS 'te Mime Type Tanımlama

Farklı uzantılı dosya tipleri ile çalışmak sıkıntılara sebep olabiliyor. Bu dosya tipleri IIS üzerinde tanımlı değilken web uygulamasında bu dosya tiplerini çalıştırmak istediğimizde şöyle bir hata alabiliyoruz.

Microsoft – Internet Information Server (IIS) – Error – The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map

Bu sorunu çözmek için IIS Manager'da ilgili web sitesini seçip MIME Types kısmından gerekli tanımlamayı yapabiliriz. MIME Types'a çift tıkladığımızda tanımlı olan dosya tiplerinin listesini görebiliyoruz. Eğer kullandığımız dosya tipi ve uzantısı tanımlanmamışsa Add'e basıp tanımlamamız mümkün.

Add MIME Type başlıklı pencerede File name extension kısmına dosya uzantısını, MIME type kısmına da dosyanın tipi ile ilgili gerekli bilgiyi yazıyoruz.

Dosya uzantıları ve bunlara karşılık gelen MIME type'ları http://www.webmaster-toolkit.com/mime-types.shtml adresinde bulabilirsiniz.


ASPX - GridView Row Disable

1-Jquery
Asagıdakı kod parcacığında gridview in satırlarında kullanılan kontrollere tek tek ulasılır.İstenilen kontroller teker teker disabled edilir. 

Not: Jquery kullanabilmek için jquery kutuphanesini sayfamızda göstermek zorundayız.

rowid         :İnteger bir degerdir.Hangi satırda işlem yapılacagını gösterir.
isdisabled :bool bir degerdir.True olursa kontrol disabled, false olursa kontrol enable olur.

2-Code Behind
Eğer gridview in tum satırını disable etmek istersek bunu rowdatabound eventinde yapmak daha kolay olacaktır.Bu method her satır için tek tek calısacaktır.



Maximum request length exceeded

Fileupload dan dosya yüklerken megabyte ı buyuk olan dosyalarda bu hatayı alabiliriz.
Bunun en kolay yöntemi web.config dosyamızda maximum bir değer belirtmektir.

Bunun için <system.web> tagı icerisine  <httpRuntime maxRequestLength="32768" /> yazmamız yeterli olacaktır.Ben burada 32768 girdim.Eğer bu limit de küçük gelirse daha büyük değer girebilirsiniz.


ASP# - Sayfa Adını Öğrenme

ASP.NET ile bulunduğunuz sayfanın dosya adını elde etmek isterseniz Page nesnesini kullanabilirsiniz. Yalnız tam olarak sayfa adını alabilmek için 2 basit işlem daha yapmanız gerekiyor.

page_name = Page.ToString().Replace("_aspx", ".aspx").Remove(0, 4);   (C#)
page_name = Page.ToString.Replace("_aspx", ".aspx").Remove(0, 4)    (VB .NET)

page_name değeri o an bulunduğumuz sayfanın adını getirecektir.

ASP# - Online Ziyaretçi Sayısı

Ilk olarak ApplicationState kullanımını ele alalım.

ApplicationState Oluşturma

Application["Appisim"] = "Değer";
ApplicationState Değeri Alma

string appdegeri = (string)Application["Appisim"];

ApplicationState Silme

Oluşturmuş olduğumuz ApplicationState'ler Sunucu taraflı saklandığı için Sunucumuz üzerinde yük oluşturacaktır. Bu yüzden kullanmaya ihtiyacımız olmadığı durumlarda ApplicationState'leri Silmemiz gerekir.

Application.Remove("Appisim");

ApplicationState Tamamını Silme

Application.RemoveAll();

Online Ziyaretçi

Application State'lerin kullanımı hakkında en iyi örneklerden biri Online Ziyaretçi Sayısı Hesaplama uygulamasıdır. Bu uygulama ile Application State'lerin kullanılış mantığını anlamış olacağız.

Sitemize giren her kullanıcı Global.asax içindeki SessionStart'ı çalıştırmış olur ve sitemizden çıkan her kişide Session_End'i çalıştırmış olur. Biz Session_Start'a gelen her kullanıcı için Online Ziyaretçi sayımızı 1 artıracağız. Session_End'e gelen her kullanıcı için ise Online Ziyaretçi sayımızı 1 azaltacağız. Böylece Online Ziyaretçi sayımızı güncel olarak tutmuş olacağız. Kodlar aşağıda verilmiştir. Bu kodları Global.asax içine yazıyoruz.

void Application_Start(object sender, EventArgs e)
 {
    Application["OnlineZiyaretci"] = 0; //Burada OnlineZiyaretçi tanımı yapılmıştır.
 }

void Application_End(object sender, EventArgs e)
 {
    Application.Remove("OnlineZiyaretci"); //Burada uygulama sonlandırılmıştır ve OnlineZiyaretci State'imizi siliyoruz.
 }

void Session_Start(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] + 1; //Burada sitemize yeni bir kullanıcı girdiğini anlıyoruz ve OnlineZiyaretçi sayımızı 1 artırıyoruz.
    Application.UnLock();
 }

void Session_End(object sender, EventArgs e)
 {
    Application.Lock();
    Application["OnlineZiyaretci"] = (int)Application["OnlineZiyaretci"] - 1;  //Burada sitemizden bir kullanıcının ayrılmış olduğunu anlıyoruz ve OnlineZiyaretçi sayımızı 1 azaltıyoruz.
    Application.UnLock();

  }

  • Sayıyı bir label da gosterelım.

 int onlineZiyaraetciSayisi = (int)Application["OnlineZiyaretci"];
 lbl_online.Text = "Online Ziyaretci Sayisi : " + onlineZiyaraetciSayisi.ToString();

ASP.NET Web Forms ve ASP.NET MVC Arasındaki Farklar

Bu yazımda iki teknoloji arasındaki farklılıkları, avantajlarını ve dezavantajlarını sonuç olarak hangisini seçmemiz gerektiğini anlatacağım.

ASP.NET Web Forms üzerinde bulunan datalist, gridview gibi componentler kullanıldıklarında kapladıkları yer o kadar çoktur ki, normal durumda arkaplanda çalışan kodlarımızdan bile daha çoktur. Ayrıca postback ve view state kullanımıda büyük bir yüktür.

ASP.NET MVC kullanırken sunucu taraflı kontrollerin olmadığını göreceksiniz,yine postback esasına dayanan bir yapı da yok, ViewState yok. (ASP.NET WebForms 4.0 ile de bu alanda çok şeyler yapıldı, ViewState önemli derecede küçültülebiliyor hatta bazı durumlarda devre dışı bırakılabiliyorda) Araştırdığınızda bazı kaynaklarda sunucu taraflı kontrollerin kullanılabileceğini görebilirsiniz, şahsen yapmadım ama yapılmasının önünde bir engel yok,yalnız o durumda viewstate gibi durumlar nasıl hallediliyor bilmiyorum. Bence hiç sunucu taraflı kontrol kısmına girmeyin ASP.NET MVC kullanmanızın bir anlamı kalmaz.

Hali hazırda kullandığınız Web Forms'ların avantajları çok derin HTML ve Javascript bilgisi olmadan bile iş gören siteler oluşturulabilmesi. Sunucu taraflı kontroller zaten istemciye gönderilecek HTML çıktısını geliştirici yerine oluşturuyorlar, ya da bu çıktıya dönüştürülüyorlar demek daha doğru. Bu kontroller ihtiyaçları karşılama noktasında gayet iyiler, özellikle toolbox'un Data sekmesindekilerin yetenekleri.
Yine olay bazlı (event-driven) bir programlama modeli olduğundan daha önce bu modeli kullanan kişiler için büyük kolaylık sağlayacaktır. Önceleri Windows Forms ya da Office üzerinde programlama yapan kişiler WebForms kullanarak yabancılık çekmeden geliştirme yapabilirler.
Birde 3. parti kontroller var piyasada,görsellik ya da standart kontroller ile sağlanamayan özellikleri bu kontrolleri kullanarak edinmek mümkün.

ASP.NET MVC'nin avantajları ise bir kere üretilen HTML çıktısı üzerinde hakim olmanız. KB larca ViewState bilgisini oradan oraya sırtınızda yük gibi taşımak zorunda kalmıyorsunuz. Model View ve Controller adında 3 temel yapı sunulduğundan SoC(Seperation of Concerns - İlgilenilmesi gereken işlerin birbirinden ayrılması) sağlanmış oluyor. View sadece sayfada görüntülenecek kısımla ilgilenirken, Controller sayfadan kullanıcının yaptığı işlemlere göre bir çeşit iş katmanı gibi davranıp iş mantığını yürüttükten sonra gösterilmesi için yeni bir View gönderiyor istemciye. Model ise veri ve veritabanı işlemlerini çağrıştırıyor olsa da burada bir DAL(Veri Erişim Katmanı) kurulması mümkün. Yani iş katmanında verinin nasıl kullanılacağı ve veritabanına verinin ne şekilde kaydolunacağını da Model içerisinde inceleyebiliyoruz.Okuyunca biraz karışık geliyor ama düşününce yapılan işi planlama noktasında,mimari de diyebiliriz daha iyi bir sistem gibi duruyor.

Şu da var, ASP.NET WebForms ile geliştirme yaparken temel HTTP protokolünün nasıl çalıştığını bilmeye gerek yok, bir şekilde kullanıyorsunuz ama bunu framework sizi devreye sokmadan yapıyor, o yüzden MVC kullanmanın bu noktada da bir avantajı var diyebilirim. HTTP ve hergün kullandığımız Web nasıl çalışıyor sorusuna MVC daha iyi cevap veriyor.

Bu durumu bir örnekle açıklayalım: Asp.Net WebForms ile oluşturulmuş bir butona tıkladığımızda, normalde çalışan sistemden 10 kat daha fazla performans harcaması gerçekleşiyor. Bu çok büyük bir performans düşüklüğüne sebebiyet veriyor. Bu yüzden hızlı bir web sitesi yapmak hayal olarak kalıyor.
Ancak MVC'de bu gibi durumlar söz konusu değildir. Performansı yüksek ve oldukça hızlıdır.
Şimdi bu iki yapının avantaj ve dezavantajlarından bahsedelim.

ASP.NET WEB FORMS

Amaç Windows ortamında uygulama geliştiren geliştiricilerin zorluk çekmeden Web ortamına adapte olmalarını sağlamaktır. Kısaca geliştiricilerin çabuk bir şekilde uygulama geliştirmesine imkan tanımaktır.
Server kontrolleri (textbox,listbox vs.) viewstate dediğimiz yapıyı kullanarak otomatik olarak ayarlar.(state of view) Ancak bu durum büyük bir sorunuda beraberinde getirir.
Server kontrollerinin çok olması avantajlarından birisidir.WebForms'lar ortaya ilk çıktığı andan beri yüzlerce kişi ve şirket bu yapıya bileşen yazdı. Bileşenlerin bolluğu vardır ve bu bize daha kısa sürede kod yazma imkanı verir.
Ayrıca Asp.Net Web Forms ile ilgili çok sayıda kaynak vardır. İnternetten kolayca yararlanılabilir.

ASP.NET MVC

Uygulama Model, View ve Controller'a bölerek karmaşıklığı önler.
View üzerinde HTML kontrolü vardır. MVC FrameWork içerisindeki View sayfalarında standart HTML kullanılır ki bu da bize HTML üzerinde tam olarak kontrol sağlar.
Test Edilebilirdir. ASP.NET WebFormlar'da test imkanı çok kısıtlıdır. Test için harici sınıflar eklememiz gerekmektedir. Nedeni ASP.NET WebForm'un IIS ve yaşam döngüsü(life circle) olmadan bunu çok zor bir şekilde yapabileceğidir. MVC'de durum böyle değildir. MVC FrameWork oluşturulurken bu durum göz önüne alınmıştır ve buna karşı Test Driven Developer(Test Sürüşlü Geliştirme) gelmiştir.

URL Routing  vardır. Microsoft MVC mimarisinde, Routing adı altında yeni bir düzenleme getirdi ve bunun büyük katkıları oldu. Daha kolay Seo'ya imkan verdi. Bu durumu ileride ele alacağım.
Sayfa döngüsü(life circle) yoktur. Hiçbir zaman overflow exception hatasına düşmez.

ASP #NET de MENU KULLANIMI


<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
                    <Items>
                        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Import Tool"/>
                        <asp:MenuItem NavigateUrl="#" Text="Qualification Tool"/>
                    </Items>
                </asp:Menu>

GridView Filtreleme İşlemi(DataTable Select)


Datatable ımıza select sorgusu atarak yeni bir datatable olusturup daha sonra da bu datatable ı gridimize datasource olarak veriyoruz.Burada önbemli nokta ilk datatable ımızı clone() işlemıne tabi tutmak olacaktır.Boylelıkle column ismi vermeye gerek kalmaz ve gridin rowlarındakı verılerı alır.

Asagıdakı örnek te ,bir textbox a girilen kelimeye gore gridin herhangi bir kolonuna gore fıltreleme ıslemı yapılmaktadır.
protected void btn_Filter_Click(object sender, EventArgs e) {
            try {
                DataTable newDt = new DataTable();
                DataTable datatable = (DataTable)ViewState["GridProducts"];
   //Ben viewstate te tutmustum datatable ı.Siz su sekılde de datatable ınızı cekebilrsiniz.
  //Datatable datatable=(Datatable)gridView1.DataSource;
                if (datatable != null && datatable.Rows.Count != 0) {
                    if (!string.IsNullOrEmpty(txt_FiltrelenecekText.Text)) {
                        datatable.CaseSensitive = false;
                        string selectQuery = "Product_Name like '" + txt_FiltrelenecekText.Text + "%'";
                        DataRow[] results = datatable.Select(selectQuery);
                        if (results != null && results.Length != 0) {
                            newDt = datatable.Clone();
                          
                            //datatable.Clear();
                            foreach (DataRow row in results) {
                                newDt.ImportRow(row);
                                
                            }
                            grid_Product.DataSource = newDt;
                            grid_Product.DataBind();
                            grid_Product.Visible = true;
                        }
                        else {
                            EkranaMesajYaz("Product is not found in list.","ScreenMessage");
                        }
                    }
                    else {
                        EkranaMesajYaz("Filter text is empty.", "ScreenMessage");
                    }
                }
                else {
                    EkranaMesajYaz("Product List is null", "ScreenMessage");
                }
            }
            catch (Exception ex) {
                EkranaMesajYaz(ex.Message, "ScreenMessage");
            }
        }

C#-GridView Filtreleme


Aslında işlem gridview e datasource olarak verilen datatable ın degısmesıdir.
Ilk bas daha onceden gridview e atanan source u Session da saklamıstık.Şimdi butona tıklamakla Session daki datatable ı yeni bir datatable a atarız.Daha sonra bu datatable ı Clone larız.Foreach dongusu ıcınde filtrelenecek sutuna göre arama yaparız.Eger filtrelenecek text le row daki kolonun degerı aynıysa o degeri yeni datatable ımıza eklerız.ve o datatable ı gridview immize datasource olarak veirriz.Boylece filtrelemis oluruz.Eger eski gridview i tekrar geri getirmek istiyorsak ilk bas Session da bulunan datatable gridview imize datasource olarak vermemiz yetecektir.

btn_Filter adlı butonun tıklanmasıyla calsacak kod blogu.
protected void btn_Filter_Click(object sender, EventArgs e)
        {
            if (grid_Product != null && grid_Product.Rows.Count != 0)
            {
                DataTable dtable = new DataTable();
                DataTable currentDTable = (DataTable)Session["GridProducts"];

                if (txt_FiltrelenecekText.Text != string.Empty)
                {
                    if (currentDTable != null && currentDTable.Rows.Count != 0)
                    {
                        dtable = currentDTable.Clone();
                        Boolean urunVarMi = false;
                        var index = 1;
                        foreach (DataRow row in currentDTable.Rows)
                        {
                            if (row["Product_Name"].ToString() == txt_FiltrelenecekText.Text)
                            {
                                row["Index"] = index.ToString();
                                dtable.ImportRow(row);
                                urunVarMi = true;
                                index++;
                            }
                        }
                        if (urunVarMi == true)
                        {
                            grid_Product.DataSource = dtable;
                            grid_Product.DataBind();
                        }
                        else
                        {
                            EkranaMesajYaz("Product is not found in list.");
                        }
                    }
                }
                else
                {
                    EkranaMesajYaz("Filter text is empty");
                }
            }
            else
            {
                EkranaMesajYaz("Product List is null");
            }

        }
Sorularınızı gkhnmnts@gmail adresine atabilrsiniz.

C#-Web Application Response.Redirect()


Response redirect kullanılarak herhangi bir sayfanın acılması saglanır.Yapacagınız tek sey Response.Redirect e acılacak sayfanın url sini vermektir.

Örnek:
string url="http://gkhnmnts.blogspot.com"
Response.Redirect(url);

C#- Web Application Kod Kısmında Ekrana Karakter Basma




           /* Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ScreenMessage", "<script language='javascript'>alert('" + HosGeldiniz+ "');</script>");*/


mesaj değişkenindeki degerler sayfanın kod kısmında kullanılarak ekrana mesaj verilmesi saglanır.

GridView de Bir Sutundaki Veriye Göre Satırı Disable Etme


Aşağıdaki metota gridview imizi gondererek satırımızı disable edebiliriz. 
public void GridViewRowDisabled(GridView gridView)
        {
            try
            {
                if (gridView != null && gridView.Rows.Count != 0)
                {//GridView de deger varmı kontrol ediliyor.
                    for (int i = 0; i < gridView.Rows.Count; i++)
                    {//GridView satır satır dolasılarak veriye gore disable ediliyor.
                        HiddenField hidden_ProductType = gridView.Rows[i].FindControl("hidden_ProductType") as HiddenField;
//GridView satırında ekranda görülmeyen ama arka tarafta saklanan deger okunuyor.
                        if (hidden_ProductType.Value.ToUpper().Trim() == "SPACE")
                        {//Okunan deger harfleri upper yapılarak SPACE mi kontrol ediliyor.Burada 
                            gridView.Rows[i].Enabled = false;
/*ProductType=SPACE se o satır disable edildi.*/
                        }
                    }
                }
            }
            catch (Exception )
            {
                throw;
            }
        }
Anektot:
HiddenField
HiddenField lar ekranda görülmezler.Sayfa üzerinde veri saklamada kullanılabilir.Value özelliginde veri saklanabilir.
ToUpper().Trim()
string bir deger hem büyük harfli haline donusur ve daha sonra başında ve sonundaki bosluk karakterleri atılır.String eşlemede kullanılması yararlıdır.

Asp#net --FileUpload Kullanımı



MultiView Kullanımı





Web Sayfası Tema Kullanımı


Web Kontrolü Seviyesinde Tema Kullanımı:
Tema özelliğini sunucu kontrolleri üzerinde de ayarlayabilirsiniz.
 Eğer daha yüksek seviyede bir theme ayarı yaptıysanız , web kontrolünün 
EnableTheming özelliğini false yaparak bu özelliği sunucu kontrolü seviyesinde disable edebilirsiniz.
<asp:RadioButtonList ID="RadioButtonList1" Runat="server" EnableTheming="False" >

Sayfanın başında Theme özelliğini RedTheme olarak ayarladıktan sonra 
RadiButtonList kontrolünün EnableTheming özelliğini false yaptım.
 Böylece bu sunucu kontrolünün sayfa bazında uygulanan tema özelliğini iptal etmiş oldum.
 Daha önce dediğim gibi düşük seviyedeki ayarlar yüksek seviyede yapılan ayarların yerine geçer.

Asp#net -Skin (Dış Görünüm) Dosyası Oluşturmak


Tema klasörünün altında oluşturulacak Skin (Dış Görünüm) dosyası web sunucu kontrolleri
 için görsel özellikler belirtir. Bir tema klasörünün altında çok fazla sayıda Skin dosyası olabilir.
 ASP.NET onları tek dosyaymış gibi okur. 
Skin dosyasını oluşturmak için tema klasörünün üzerinde farenin sağ tuşuna tıklanır 
ve açılan menüden Add New Item seçilir. Skin File şablonu seçilir ve Add butonu tıklanır

Skin dosyası 2 örnek etiket ile gösterilecektir. Bu sayfa istenirse tamamen silinebilir.
 Hangi web sunucu kontrolünün görünümü değiştirilecekse, onlar için etiket oluşturulur.
 Örneğin Button ve Label’lar için

<asp:Button  runat=”server” />
<asp:Label  runat=”server” />

yazılabilir. İstenilen özellikler buraya eklenir. Daha sonra dosya Save komutuyla kaydedilir.
Aynı web sunucu kontrolleri için farklı dış görünüm tanımlayabilmek için SkinId etiketinden faydalanılır.
 İlgili kontrolün özelliklerine SkinId=”renkli” gibi bir etiket eklenirse, bu özellikler
 web sunucu kontrolünün özelliklerinde SkinId özelliği renkli olan kontroller uygulanır. 
SkinId özelliği renkli olmayanlara bu yansıtılmaz.

Sayfa ve Sitelere Tema Ekleme---Asp # net



Tema eklenecek web sayfası Design (tasarım) modunda açılır.
Properties peneceresinden DOCUMENT seçilir ve oradan da Temaözelliği seçilir.
Üç nokta düğmesi tıklanır ve ilişkilendirilecek tema dosyası seçilir.
Tüm web sitesine bir tema uygulamak için, web.config dosyasından yararlanılır.

  <system.web>   </system.web> etiketleri arasına


<system.web>
<pages theme=”tema1” />
</system.web>

yazılarak, örneğin tema1’in tüm sitedeki web sayfalarında geçerli olması sağlanır.
Ayrıca CSS dosyaları tema klasöründe saklanabilir.
Bu sayede temayı kullanan her sayfa, css sayfalarındaki özellikleri de kullanacaktır.

GridView İçerisindeki Butona Tıklama--Asp# net



GridView izin onrowcommand olayını ve butonumuzun da CommandName olaylarını kullanıyoruz.Örnek kod asagıdadır.

<asp:GridView ID="gvOdenmemisSatislar" runat="server" DataKeyNames="SatisId"
         onrowcommand="gvOdenmemisSatislar_RowCommand">
        <Columns>
     
            <asp:ButtonField ButtonType="Button" CommandName="Odendi" Text="Ödendi Olarak Kaydet" />
            <asp:BoundField />
        </Columns>
    </asp:GridView>



  protected void gvOdenmemisSatislar_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "Odendi")
        {
            try
            { // butona tıklayınca olacaklar
                int index = Convert.ToInt32(e.CommandArgument);

                int satisId = Convert.ToInt32(gvOdenmemisSatislar.DataKeys[index].Value);

                OdendiOnayla(satisId);

            }
            catch (Exception ex)
            {

                throw ex;
}

Asp#NET de TextBox a Sadece Rakam ve Nokta Girebilme(Javascript)


Javascript :
     <script language='javascript' type='text/javascript'>
        
        function onlyNumbers(evt) {
            var e = event || evt; // for trans-browser compatibility
            var txt = e.srcElement;
            var val = txt.value;
            if (val.indexOf('.')!=-1 && e.keyCode == 46)
                return false;
            var charCode = e.which || e.keyCode;

            if (charCode == 46 || (charCode >= 48 && charCode <= 57))
                return true;

            return false;
    
    </script>

Not :Charcode==46 Nokta dır. 48 ile 57 arası da 0 dan 9 a kadar olan rakamlardır.

Asp tarafındaki sayfamızda javascripti aşağıdaki gibi çağırıyoruz.

  <asp:TextBox ID="txt_ProductPrice" runat="server" Width="120px" Height="20px" 
                 AutoPostBack ="true" onkeypress="return onlyNumbers();" ></asp:TextBox>