29 Ekim 2013 Salı
The client disconnected.
http://www.tameroz.com/en/invalid-viewstate-exception/
16 Nisan 2013 Salı
ASP NET Türkçe Karakter Problemi
1) Aspx sayfanızı not defteri ile açıp farklı kaydet seçeneğini seçip UTF-8 olarak kaydedin.
2) Aspx sayfanızın en üstüne CodePage="28599" yazın.
16 Mart 2013 Cumartesi
Mssql yetki ayarlaması
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can’t be re-created or enabled the option Prevent saving changes that require the table to be re-created.
22 Kasım 2012 Perşembe
Update komutu ile select cümlesini bir arada kullanmak
begin tran
select * from tbl_TibbiBirimler order By TibbiBirim
UPDATE
bir
SET
TibbiBirim = '----' + TibbiBirim
FROM
tbl_TibbiBirimler bir
select * from tbl_TibbiBirimler order By TibbiBirim
rollback
Tablomuza vermiş olduğumuz takma adı ile UPDATE kodunda kullanaraktan tablomuzu güncelleyebiliyoruz.
18 Haziran 2011 Cumartesi
internet explorer ‘da gmail açmaya çalışırkenki ‘güvenli olmayan öğeler’ uyarısını yok etmek..
- internet explorer ‘da internet seçenekleri ‘ni açın.
- en yukarıdaki sekmelerden güvenlik sekmesine gidin.
- güvenlik sayfası altındaki seçeneklerden önce internet ‘i seçin.
- sonra alt taraftaki bölge güvenlik düzeyi bölümünden özel düzey ‘i açın.
- oradaki uzunca listeden çeşitli başlığı altındaki karışık içerik görüntüle maddesini bulun.
- bu maddede varsayılan olarak sor seçeneği seçilidir(bende öyleydi). bu seçeneği değiştirip devre dışı bırak seçeneğine ayarlayın. tamam deyip onaylayın, “emin misiniz” diye soracak; “he he eminim” deyin, geçin. sonra bi daha tamam deyin, çıkın.
- tam anlamadım ama sanırım bu şekilde o uyarının çıktığı sayfalardaki güvenli olmayan öğeler-size sorulmaksızın-görüntülenmeyecek.
Kaynak : http://www.adilekin.net/gunluk/internet-explorer-da-gmail-acmaya-calisirkenki-guvenli-olmayan-ogeler-uyarisini-yok-etmek/
1 Aralık 2010 Çarşamba
CETURK – ORACLE Günü’10 ”
Bugüne kadar çok farklı konu ve teknoloji ile ilgili yaptığı ücretsiz etkinliklerle bilişim sektörünün gelişmesine katkıda bulunan CETURK etkinliklerine büyük bir hızla devam ediyor. 4 Aralık 2010 tarihinde Bahçeşehir Üniversitesi'nde ” CETURK – ORACLE Günü’10 ” etkinliği gerçekleştirilecek. Bugüne kadar gerçekleştirilen gerek CETURK gerekse ORACLE etkinlikleri içerisinde konu ve konuşmacılarıyla öne çıkan bu etkinliğe katılım ücretsiz olacak.
Etkinliğin konuşmacıları :
- Türkiye’de Oracle Certified Master(OCM) sertifikasına
sahip tek kişi olan Cem Zorba, - BI alanından Oracle ACED ve 2009 yılın Oracle DBA’yi unvanlarının
sahibi ve bu ödüllere sahip Turkiye’deki tek, tüm dünyadaki en en geç uzman olan Hüsnü Şensoy, - 10 seneyi aşan Oracle veritabanı tecrübesine sahip olan H. Tonguç Yılmaz,
- Özel bir bankada ORACLE DBA olarak çalışan Gökhan Karagözlü ve Talip Hakan Öztürk
Ayrıntılı bilgi için tıklayınız.
Etkinliğe kayıt için tıklayınız.
14 Eylül 2010 Salı
ASP.NET ve Culture ayarları

'This code produces the following output. This output has been cropped for brevity.
'
'CULTURE SPECIFIC CULTURE
'ar Arabic ar-SA
'bg Bulgarian bg-BG
'ca Catalan ca-ES
'zh-Hans Chinese (Simplified) zh-CN
'cs Czech cs-CZ
'da Danish da-DK
'de German de-DE
'el Greek el-GR
'en English en-US
'es Spanish es-ES
'fi Finnish fi-FI
'fr French fr-FR
'he Hebrew he-IL
'hu Hungarian hu-HU
'is Icelandic is-IS
'it Italian it-IT
'ja Japanese ja-JP
'ko Korean ko-KR
'nl Dutch nl-NL
'no Norwegian nb-NO
'pl Polish pl-PL
'pt Portuguese pt-BR
'rm Romansh rm-CH
'ro Romanian ro-RO
'ru Russian ru-RU
'hr Croatian hr-HR
'sk Slovak sk-SK
'sq Albanian sq-AL
'sv Swedish sv-SE
'th Thai th-TH
'tr Turkish tr-TR
'ur Urdu ur-PK
'id Indonesian id-ID
'uk Ukrainian uk-UA
'be Belarusian be-BY
'sl Slovenian sl-SI
'et Estonian et-EE
'lv Latvian lv-LV
'lt Lithuanian lt-LT
'tg Tajik tg-Cyrl-TJ
'fa Persian fa-IR
'vi Vietnamese vi-VN
'hy Armenian hy-AM
'az Azeri az-Latn-AZ
'zh-TW Chinese (Traditional, Taiwan) zh-TW
'zh-CN Chinese (Simplified, PRC) zh-CN
'zh-HK Chinese (Traditional, Hong Kong S.A.R.) zh-HK
'zh-SG Chinese (Simplified, Singapore) zh-SG
'zh-MO Chinese (Traditional, Macao S.A.R.) zh-MO
'zh Chinese zh-CN
'zh-Hant Chinese (Traditional) zh-HK
'zh-CHS Chinese (Simplified) Legacy zh-CN
'zh-CHT Chinese (Traditional) Legacy zh-HK
6 Eylül 2010 Pazartesi
Convert.ToInt32(), Int32.Parse() ve Int32.TryParse() Farklılıkları
http://erkanguzelkucuk.wordpress.com/2010/01/14/convert-toint32-int32-parse-ve-int32-tryparse-farkliliklari/
5 Eylül 2010 Pazar
SQL ile Tablonun Kopyasını Almak
CREATE TABLE yedek_emp AS SELECT * FROM employees;
Eğer sadece tablonun yapısını kopyalamak istiyorsak (içerisinde kayıt olmadan), SELECT sorgusuna bir filtre (WHERE) koyarak bunu yapabiliriz:
CREATE TABLE yedek_dep AS SELECT * FROM departments WHERE 1 = 0;
Kaynak: http://www.gokhanatil.com/2008/06/sql-ile-tablonun-kopyasini-almak/
21 Temmuz 2010 Çarşamba
PadLeft, PadRight ve Bazı String İfadeler
Sürekli bir sayının başına sıfır koymaya çalıştığımda toString("00") kullanıyordum. Örneğin illlerin plaka kodlarını düşünürsek 1, 2 .. olarak gidiyor daha güzel gözükmesi için 01, 02 .. yapıyordum.
Nette dolaşırken hiç de bu zamana kadar dikkatimi çekmeyen 2 fonksiyon gördüm. PadLeft ve PadRight.
string il = "1";
string kod = "366";
MessageBox.Show(il.PadLeft(2, '0')); // Sonuç: 01
MessageBox.Show(kod.PadLeft(4, '0')); // Sonuç: 0366
MessageBox.Show(il.PadRight(2,'0')); // Sonuç: 10
MessageBox.Show(kod.PadRight(4,'0')); // Sonuç: 3660
ToLowerInvariant, ToUpperInvariant
String değerleri küçük karakter yapmak için ToLover, büyük yapmak içinse ToUpper fonksiyonlarını kullanmamız gerektiğini hepimiz biliriz. Pekala çeviri yaptığımız değerleri olduğu gibi değilde sistemin diline göre (ı, i duyarlı) çevirmek için nasıl bir yöntem izleriz. İşte burada ToLoverInvariant ve ToUpperInvariant fonksiyonlarını kullanırız.
string txt = "BirDunyaTarif";
Response.Write(text.ToLower()); // birdunyatarif
Response.Write(text.ToLowerInvariant()); // birdunyatarif
Response.Write(text.ToUpper()); // BİRDUNYATARİF
Response.Write(text.ToUpperInvariant()); // BIRDUNYATARIF
NOT: İşletim sistemim ingilizcedir.
StringBuilder()
Bu zamana kadar string birleştirirken string değişkenlerinin arasına + işaretini ekledim. Bunun çok yalnış olduğunu ve sistemi yorduğunu öğrendim. Bunun yerine StringBuilder sınıfı kullanılmalı.
StringBuilder builder = new StringBuilder();
string[] txt= new string[] { "Tekno", "Gezgin"};
for (int i = 0; i < txt.Length; i++) {
builder.Append(txt[i] + " ");
}
Response.Write(builder.ToString());
5 Temmuz 2010 Pazartesi
MsSql Script Olarak Backup (Yedek) Alma
MsSql ücretsiz versiyonu (Express) uzun aramalardan sonra bu şekilde bir şey olmadığını gördüm. Tabiki imdadıma yine Visual Studio yetişti. Sağ taraftaki Server Explorer'dan veritabanım üzerine sağ tıklayınca açılan pencereden "Publish to provider" seçerek karşımıza çıkan ekranlarda sürekli next next diyerekten veritabanımızı script olaraktan yedek almış oluyoruz.
Eğer "Publish to provider" seçeneği karşınıza çıkmazsa Microsoft SQL Server Database Publishing Wizard 1.1 bu linkten indirip tekrardan deneyin.
1 Temmuz 2010 Perşembe
Yazdığımız Kodların Güvenliği
http://www.csharpnedir.com/forum2/forum_posts.asp?TID=29958
MSN'le Gelen Sinir Bozucu Pencere
MSN her açtığımda otomatik olarak açılan ve benim beklememe(makinem çok yavaş :D) sebep olan pencerenin artık karşıma nasıl bir daha çıkmayacağını buldum.
Msn’inizde sırasıyla Araçlar >> Seçenekler >> Genel sekmesine gelin veya Otorum Aç sekmesine gelin >> Messenger’da oturum açtığımda Windows Live Bugün’ü görüntüle
şeklinde bir seçenek var. Bunu işaretleyip uygula dedikten sonra artık penceresiz bol günler.26 Haziran 2010 Cumartesi
Captcha ve KittenAuth Nedir ?
Captcha ve KittenAuth zaman geçtikçe gelişen teknolojilere bir nebze güvenlik katmak için geliştirilen yapılardır. Hepinizin bildiği ve günlük hayatta sürekli karşısına çıkan (yorum yazarken vs) değişik harf ve sayılardan oluşan resimleri ekrana girmeniz istenir. Buna Captcha denir.
Paragrafın başında dediğim gibi sürekli gelişen bir teknolojiyle bu güvenlik ayarınıda geçmeyi başardılar. (Değişik yazılımlarla grafikleri okuma programları yaygınlaştı.) Buna karşıda Captcha gelişti ve KittenAuth adında bir güvenlik mekanizması ortaya çıktı. Bunun anlamıda karşımıza çeşitli görseller çıkıyor ve aynı olanlarını seçmemizi istiyor.
22 Haziran 2010 Salı
CSS İle Yazıya Takla Attırma
"float:left; filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);"
18 Haziran 2010 Cuma
C# NULL Kontrolü
Yalnış:
var i = null;
var k = null;
if (i==null)
{
k=değer;
}
Doğru:
var i = null;
var k = null;
k = i ?? değer;
i değişkeni null'sa k değişkeninin içine değeri atama yapıyor. Değilse i değişkenini atıyor.
Ayrıca aynı javascriptteki gibi değişkenleri tanımlarken var k gibi tanımlama yapabiliyoruz. Bu sayede ileriki aşamalarda bu değikenimizin tipini belirleyebiliyoruz.
Linq To Sql Left Outer Join
(Kisi, Telefon ve Adres tablolarımız olduğunu, bir kişinin de birden çok adresi ve telefonu olduğunu düşünüyoruz )
Bu sorgu sonucunda bana kişiler tablosundaki isimler ve bunlara ait telefon numaraları gelecektir.
from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID
select new
{
Ad = kisi.Ad,
Tlf = tlf.Numara
}
T-Sql çıktısı
SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
INNER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]
Kisis.Join ( Telefons, kisi => kisi.ID, tlf => tlf.KisiID, (kisi, tlf) => new { Ad = kisi.Ad, Tlf = tlf.Numara } )
Senaryomuzu değiştirelim ;
Kişiler tablosundaki tüm kayıtlat gelsin, telefon numarası olmayanlar da gelsin telefonu yoksa null değer gelsin. Bunun içinde Left Outer Join ile çözeriz. Linq sorugumuzu şu şekilde değiştirmemiz yeterli olacaktır.
from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID into data
from x in data.DefaultIfEmpty()
select new
{
Ad = kisi.Ad,
Tlf = x.Numara
}
T-SQL çıktısı
FROM [Kisi] AS [t0]
LEFT OUTER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]
Lambda Expression
Kisis
.GroupJoin (
Telefons,
kisi => kisi.ID,
tlf => tlf.KisiID,
(kisi, data) =>
new
{
kisi = kisi,
data = data
}
)
.SelectMany (
temp0 => temp0.data.DefaultIfEmpty (),
(temp0, x) =>
new
{
Ad = temp0.kisi.Ad,
Tlf = x.Numara
}
)

Kaynak: http://www.oguzyagmur.com/PermaLink,guid,b9fcc750-0e3b-43e4-a9e8-212ee94afa4e.aspx
25 Mayıs 2010 Salı
XHTML Nedir?
XHTML Dikkat Edilmesi Gereken Kurallar?
1) Browserin XHTML standartlarına uyulduğunu anlayabilmesi için sayfanın en üstüne aşağıdaki kodların eklenmesi gerekmektedir.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
NOT:Geçerli 3 adet XHTML döküman tipi vardır:
a) XHTML Strict
XHTML Dökümanlarını css dökümanları ile beraber kullanmanız gerektiğinde kullanılır. HTML’nin dizayn unsurlarını içermez.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
b) XHTML 1.0 Transitional
CSS anlamayan web gezginlerini desteklemek ve HTML’nin dizayn unsurlarını kullanmak istiyorsanız bu döküman tipini kulanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
c) XHTML 1.0 Frameset
Eğer XHTML dökümanları pencerelere bölünmüş olarak gösterilecekse bu döküman tipini kullanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
2) Türkçe karakterlerin doğru çıkması içinde head tagının arasına aşağıdaki kodun eklenmesi gerekmektedir.
<meta equiv="Content-Type" content="text/html; charset=utf-8">
3) Kodlar açıldıkları sırada kapanmalıdırlar.
Doğru:
<html>
<head>
<title></title>
</head>
<body>
<div>TeknoGezgin</div>
</body>
</html>
Yalnış:
<html>
<head>
<title></title>
<body>
</head>
<div>TeknoGezgin</div>
</html>
</body>
4) Tagları ve değerlerini küçük harfle yazın.
Doğru:
<title></title>
<div style="">TeknoGezgin</div>
Yalnış:
<TITLE></TITLE>
<div STYLE="">TeknoGezgin</div>
5)Açılan her tag kapanmalıdır.
Doğru:
<b></b>
<hr />
Yalnış:
<hr>
<br>
6) HTML tagı içerisinde head ve body tagları kullanılmak zorundadır.
7) Link ve Resim eklerken bir başlık (title) girilmelidir.
Doğru:
<img src="" href="Kastamonu.gif" title="Kastamonu Resimi" />
<a href="http://www.teknogezgin.blogspot.com/" title="Teknolojik Bilgiler :)">
Yalnış:
<img src="" href="kastamonu.gif" />
</a><a href="http://www.teknogezgin.blogspot.com/">
8) Parametreler tırnak içinde olmalıdır.
Doğru:
<div width="100%"></div>
<a href="http://www.teknogezgin.blogspot.com/">teknogezgin</a>
Yalnış:
<div width=100%></div>
<a href=http://www.teknogezgin.blogspot.com/>teknogezgin</a>
9) Parametrelerde kısaltmalar kullanılmamalıdır.
Doğru:
<input type="radio" checked="checked" />
<option selected="selected" />
Yalnış:
<input type="radio" checked />
<option selected />
10) Sadece Id parametresi kullanın. XHTML id parametresini kullanmamızı istiyor.
Doğru:
<p id="parag">
<input id="parag" value="deger" type="submit">
Yalnış:
<p name="parag">
<input name="parag" value="deger" type="submit">
O zaman kısaca XHTML dikkat edilmesi gereken kuralları şu formül ile açıklayabiliriz. XHTML = XML
24 Mayıs 2010 Pazartesi
T-SQL İle Tarihler Üzerinde İşlemler Yapmak
-- Sonuç : 2009-07-20 10:39:15.097
SELECT DATEADD(day,2,'2009-07-20')
-- Sonuç : 2009-07-22 00:00:00.000
SELECT DATEADD(month,2,'2009-07-20')
-- Sonuç : 2009-09-20 00:00:00.000
SELECT DATEDIFF(day,'2009-07-20','2015-02-09')
-- Sonuç : 2030 (Gün olarak aldık)
SELECT DATENAME(month, '2009-07-20')
-- Sonuç : July
SELECT DATENAME(weekday, '2009-07-20')
-- Sonuç : Monday
SELECT DATEPART(month, '2009-07-20')
-- Sonuç : 7
--Şuanki Zaman ve Tarihi verir
SELECT GETDATE()
-- Sonuç : 2009-07-20 11:52:32.893
-- Londra - Greenwich Saati
SELECT GETUTCDATE()
-- Sonuç : 2009-07-20 08:52:44.693
--Girilen string değerin tarih olup olmadığını belirler. 1 ise tarih 0 ise değil.
SELECT ISDATE('2009-07-20') -- Sonuç : 1
SELECT ISDATE('2014-18-09') -- Sonuç : 0
--girilen Tarihin gün bilgisini verir.
SELECT DAY('2009-07-20')
-- Sonuç : 20
--girilen Tarihin ay bilgisini verir.
SELECT MONTH('2009-07-20')
-- Sonuç : 7
--Girilen Tarihin yıl bilgisini verir.
SELECT YEAR('2009-07-20')
-- Sonuç : 2009
--Sistem Zamanını verir.
SELECT SYSDATETIME()
-- Sonuç : 2009-07-20 11:53:15.7138432
--Sistem Zamanını Greenwiche göre verir.
SELECT SYSUTCDATETIME()
-- Sonuç : 2009-07-20 08:53:25.9958432
-- DATEADD: Şuanki, Tarihe 7 Gün ekleyelim.
-- Bunun için 1 hafta eklemek veya 7 gün eklemek yeterlidir.
SELECT DATEADD(DD, 7, GETDATE())
SELECT DATEADD(WW, 1, GETDATE())
-- Şuanki Tarihe göre Ayın hangi günündeyiz.
SELECT DAY(GETDATE())
-- Şuanki Ayın Ilk günü
SELECT DATEADD(DD,-(DAY(GETDATE())-1),CONVERT(VARCHAR,GETDATE(),112))
-- Şuanki Ayın son günü
SELECT DATEADD(DD,-(DAY(DATEADD(MM,1,GETDATE()))),DATEADD(MM,1, CONVERT(VARCHAR,GETDATE(),112)))
-- DATEDIFF: Ocak 1 2007 den bugune kadar kaç gün geçti
SELECT DATEDIFF(DD,'20070101',GETDATE())
-- DATENAME: Şuanki Ay
SELECT DATENAME(MM, GETDATE())
-- Hangi Aydayız.
SELECT MONTH(GETDATE())
-- Hangi Yıldayız
SELECT YEAR(CURRENT_TIMESTAMP)
--C#'taki gibi Tarih Stilleri
1- 101 (mm/dd/yy)
2- 102 (yy.mm.dd)
3- 103 (dd/mm/yy)
4- 104 (dd.mm.yy)
5- 105 (dd-mm-yy)
6- 106 (dd mon yy)
7- 107 (Mon dd , yy)
8- 108 (hh:mm:ss)
9- 109 (Mon dd yyyy Hh:mi:ss:mmm AM yada PM)
10 – 110 (mm-dd-yy)
11 – 111 (Yy/mm/dd)
12- 112 (Yymmdd)
13- 11 3 (Dd mm yyy hh:mm:ss:mmm)
14- 114 (Hh:mi:ss:mmm)
20- 120 (Yyyy-mm:dd hh:mm:ss)
21- 121 (Yyy-mm:dd hh:mi:ss:mmm)
Microsoft'un sitesinden de farklı stillere bakabilirsiniz.
SELECT CONVERT(CHAR(20), GETDATE(),103) as "şu andaki zaman" 07.07.2010
SELECT CONVERT(CHAR(20), GETDATE(),108) as "şu andaki saat" 14:51:25
Zamanla buraya daha farklı zaman fonksiyonlarıda ekliyecem.
13 Mayıs 2010 Perşembe
Asp.net Dinamik event handler ve Dinamik Kontroller
Bu kodda asp.net kontrollerini dinamik oluşturacağız. ama sırf bunu anlatmak için açmadım konuyu. birde
ajax ile de kullanabileceğiniz kullanabileceğiniz dinamik event handler atama işlemine değineceğim.
Sayfamıza bir placeholder ekleyelim ve pageload'a gelelim
for(int i=1;i<10;i++)
{
Button tus = new Button();
tus.Click += new System.EventHandler(this.tikla);
tus.ID = "tus" + i.ToString();
tus.Text = "Tus " + i.ToString();
PlaceHolder1.Controls.Add(tus);
Literal lt = new Literal();
lt.Text = "
";
lt.ID = "lit" + i.ToString();
PlaceHolder1.Controls.Add(lt);
}
kodumuz yukarıda biraz açıklayacak olursak. for döngümüz içinde buton sınıfından bir nesne
oluşturuyoruz. bu nesnenin click özelliğine kendi yazdığımız tıkla fonksiyonunu atıyoruz. id'sini ve
text'ini fordaki i değişkenimizle, sıralı oalcak şekilde atıyoruz (tus1,tus2..) evet butonumuz oluştu.
şimdi bunu sayfamızda görebilmek için placeholder nesnemize atalım.
2. bölümde aynı işlemleri literal için yapıyoruz. alt satıra atmak için literal textine
br atıyoruz.hiç dinamik kontrol kullanmayanlara örnek olması için. bir de literal oluşturdum.
Şimdi fonksiyonumuza geçelim. bu fonksiyon yukarıda butonlara atadığımız kendi yazacağımız fonksiyon.
static butonlarda butona çift tıklayınca çıkan onclick fonksiyonundan pek farklı değil.
protected void tikla(object sender, EventArgs e)
{
System.Web.UI.WebControls.Button dugme = sender as System.Web.UI.WebControls.Button;
if (dugme != null)
{
Response.Write(dugme.Text+" basıldı");
//buton numarasını alabiliriz. veri tabanındaki id'yi atadıysak querystring yerine
kullanabiliriz.
int id = Convert.ToInt32(dugme.ID.Replace("tus",""));
}
}
kısaca açıklayacak olursak.normal click fonksiyonundan farklı olarak biz bu fonksiyonu for döngüsü
içinde 10 tane butona atatık. ve hangi butona tıklandığına ilişkin bir kod yazacağız fonksiyona.
sender objnesnesizim butonumuzu temsil ediyor bu zaten static fonksiyonlarda da var. ama bunu yine
System.Web.UI.WebControls sınıfından butona çevirmeden direkt kullanamıyoruz.(fonksiyon içindeki ilk kod
bunu yapıyor) dugme nesnesine atadık.
2. kodda null olmadığından emin olalım her ihtimale karşı önlemimizi alalım. evet artık hangi butona
tıklandığını bulmuş olduk. bu butonun text'ini yazdıyoruz. buton id'sindeki tus kelimesini replace
ederek de numarasını buluyoruz.
bu numara bulma işlemi eğer for değilde bir db'den çekilen kayıtla oluşturulmuş nesnelerde (veri
tabanındaki kayıt id'si atanmışsa) direkt bize id'yi verir. evet kısa da olsa ajaxla uğraştığım
zamanlarda geliştirdiğim bana çok kolaylık sağlamış bir koddur.
Ajaxla uğraşanlar bilirler request işlemlerini kullanmak istediğimizde başımız belaya girer :) her
sayfaya query string de gönderemeyiz. çünkü yenilenmemesi gerekir.yada link olması gerekir.
işte bu gibi durumlarda bu kod kurtarıcınız olacakatır.
id göndermeden işlem yapmak isterseniz. yine server ve asp.net tabanlı güzel bir çözümdür.
aynı zamanda birden çok butonu tek fonksiyondan kontrol etmek isterseniz yine buradan
faydalanabilirsiniz.
Kaynak: http://www.kodaman.org/yazi/asp-net-dinamik-event-handler

