Bilgisayar ile yapılan işlerin değersizliği üzerine..

Konu ciddi anlamda çok derin, kabaca aklımdakileri yazıp rahatlamak istiyorum. İnsanlar bilgisayarlara nasıl bir gözle bakıyorlarsa arıza yapmalarını imkansız sanıyorlar. Çünkü bilgisayar = inanılmaz bir alet, inanılmaz bir düzenek. Adam alıyor bilgisayarı 1 ay sonra geliyor, bunu alın yenisini verin, gerekçe ise bilgisayar bozuk ! Bu tarz problemlerin %99′ unda kullanıcı hatası bulunuyor, özellikle virüs vb.. durumlar, çok nadir donanım arızası olabiliyor. Benim anlatmak istediğim olay ise bu değil, bundan sonraki işleyiş. Doktora gidip iki öksürüyoruz 100lira veriyoruz gıkımız çıkmıyor. Bilgisayarımızı iki tıkla düzelten servise ise 1lirayı dahi çok görüyoruz, gerekçe ise oldukça komik. 2 tıkladın be kardeşim el insaf ! Güzel abim okadar biliyorsan sende tıklasaydın ! Doktorada gitme kendi kendine öksür ilacını kendin yaz olsun bitsin. İnsanlar para kazanmak için belli konularda uzmanlaşıyor ve bu işten para kazanıyor. Saygı duymamız gerekiyor, emeğin karşılığını da sesizimi çıkartmadan vermemiz gerekiyor. Arçelik ürünleri satan bir mağazadan buzdolabı veya çamaşır makinesi aldığımızda problem oluşması durumunda ürünü aldığımız yeri değil yetkili servisi arıyoruz. Bilgisayar dünyasında ise bu durum şöyle kabul görmüş, ben senden aldım kardeşim al ne yaparsan yap. Tabi tek suç kullanıcılarda değil, zamanında insanları kandıran sözde bilgisayarcı olan insanların. Kullanıcı ne satıcıya nede firmaya güvenmiyor, akabinde durum bu noktaya geliyor.

Bilmeden, anlamadan eleştiriyoruz. Bizim insanımızda çok bilmişlik her zaman hat safhadadır. Konu hakkında bilgimiz olsada olmasada eleştiririz, genellikle de yapıcı değil yıkıcıyızdır. Adamın okulda aldığı 11 saatlik Asp.Net eğitimi ile tüm .net sitelerini eleştirebilir. Ben her zaman şunu diyorum özellikle de web konusunda, arkadaşım boş boş atıp tutmayın, yapın aynısını gelin konuşun. Ay orası çok kötü burası çok kötü, acaba msn de yazışmaktan veya Facebook’ dan video paylaşmaktan kaç adım ileride bilgin var ? Tamam piyasada çok fazla kötü niyetli insan var bunu kabul ediyorum, zaman zaman bizde bunlarla uğraşıyoruz, gün geliyor projenin yarısında çekip gidiyorlar, yansıtmamak adına insan üstü çaba sarf ediyoruz(m). Yanlış anlaşılmasın ben övgüden övülmekten bahsetmiyorum. Benim en iyi arkadaşım benim, yaptığım işlerin eksik veya yetersiz yönlerini bana söyleyendir, tanıyanlarda bilirler ki anında müdahale yapar ilgili düzenlemeyi yaparım. Ama laf olsun torba dolsun diye veya millet bombalıyor dur bende bir laf sokayım zihniyetini taşıyorsanız, bana kaybettirecek bir şeyiniz yok 10 saniye kızar sonra soğur işime bakarım.

Olayı özetlersek, unutmayın ki insanlar bildikleri kadar vardır. Herkes farklı konularda bilgi sahibi olabilir. İnsanları ezmektense ellerinden tutup ayağa kaldırmasını kendimize ilke edinmeliyiz. Aksi halde herkes ileri gider bizde kendi kendimize çelme takarak sürekli geriye gideriz. Kalın sağlıcakla..

Asus U2E Nasıl Sökülür ?

Evet yine bir teknoloji faciasının eşiğinden döndük, 10 dakika daha sökülemeseydi eşikten dönemeyecektik bunu da söyleyeyim :) Resimlerden de görüleceği üzere çok şirin ve cici olan bu bilgisayarı insan neden sökmek ister isterseniz bunun cevabını vereyim, üzerinde bulunan 32GB SSD harddiskin boyutu küçük geldiğinden yerine 256Gb lik bir SSD ve  2Gb lik belleğini 4Gb yapmak istedik. (SSD diski yanlış sipariş vermişiz ondan dolayı sökmemiz boşuna gitti) Emre abimin sökme işleri üzerine özel bir yeteneği var, önce görülür vidalar sökülür, sonrasında ilgili yerlerden gerilerek aralardan bakıp daha başka nerelerde bağlantı noktası var bunların tespiti yapılır, çoğu zaman hüsranla sonlanan bu işlemi bu sefer başarıyla tamamladı, bunun haklı sevincini yaşıyoruz :) Uzun bir zaman önce IPhone neler olduğunu yazmıştım :)

Hemen sökme sırasını verip başka arkadaşların bizim düştüğümüz hatalara düşmesini engelleyeyim. Eğer sadece bellek değiştirecekseniz klavyeyi sökmeniz yeterli, bu arada sadece bir bellek slotu bulunuyor ! Sabit disk ise hemen mousenin altında bulunuyor. Önce kasanın altındaki vidaları sonrasında optik sürücüyü söküyoruz, optik sürücünün çıktığı yerin hemen altında 2 adet vida bulunuyor onları da söküyoruz. Daha sonra klavyeyi söküp altındaki vidaları söküyoruz. Sonrasında zaten olanlar oluyor :) Bilgisayarın detaylı incelemesini PCLabs yapmış merak edenler oradan bakabilir. Teknik özellikleri de vermeden geçmeyeyim.

Monitör: 11.1″ – 1366×768
İşlemci: Intel Core 2 Duo U7600 (1.2 GHZ) Merom, 2 MB L2 Cache, 10 W TDP
Bellek: 2 GB DDR2 667 MHZ ( 1GB + 1GB – entegre )
Ekran kartı: Intel 965GM ( Intel Graphics GMA X3100 )
Sabit disk: Samsung 1.8″ 32 GB SSD ZIF – 40 gr. + 160 GB 2.5″ harici sabit disk (eSATA ve USB 2.0 bağlantılı)
Yonga seti: Intel 965GM + ICH8M
Optik disk sürücü: Matshita DVD-RAM UJ-852S
Pil: 4500 mAH ( 380 gr. )ve 2400 mAH ( 180 gr. )
Ses: 2 tiz hoparlör
Webcam : 0.3 MP ( VGA )
Bağlanabilirlik: Realtek Ethernet (RTL8168B), Wireless WIFI Link 4965AGN, Bluetooth 2.0 +EDR
Giriş/Çıkışlar: 3 x USB, Mini DVI bağlantı yuvası, Kulaklık, Mikrofon girişleri, Kensington kilidi, Express Card 34 mm, 1 x Ethernet RJ 45, 1 x modem JR 11
Kart Okuyucu: MS PRO, SD Card, MMC
Boyutlar: 277(L) x 194(D) x 24
Ağırlık: 1,30 Kg. ( 2400 mAH batarya ile )

IMG 4624 Asus U2E Nasıl Sökülür ? IMG 4625 Asus U2E Nasıl Sökülür ? IMG 4626 Asus U2E Nasıl Sökülür ? IMG 4627 Asus U2E Nasıl Sökülür ? IMG 4628 Asus U2E Nasıl Sökülür ? IMG 4629 Asus U2E Nasıl Sökülür ? IMG 4631 Asus U2E Nasıl Sökülür ? IMG 4632 Asus U2E Nasıl Sökülür ? IMG 4633 Asus U2E Nasıl Sökülür ? IMG 4634 Asus U2E Nasıl Sökülür ? IMG 4638 Asus U2E Nasıl Sökülür ? IMG 4639 Asus U2E Nasıl Sökülür ? IMG 4640 Asus U2E Nasıl Sökülür ? IMG 4641 Asus U2E Nasıl Sökülür ? IMG 4642 Asus U2E Nasıl Sökülür ? IMG 4643 Asus U2E Nasıl Sökülür ? IMG 4645 Asus U2E Nasıl Sökülür ? IMG 4646 Asus U2E Nasıl Sökülür ? IMG 4647 Asus U2E Nasıl Sökülür ? IMG 4649 Asus U2E Nasıl Sökülür ?

GridView Satırlarını tıklayınca genişletmek (Expand Rows)

Nedenini bilmiyorum ama başlığı seçerken epeyce zorlandım, neyse ki bir tane
buldum :) Konumuza dönelim, GridView kontrolünde verileri listeletirken ilgili
satırın altında ilişkili diğer kayıtları göstermemiz gerekebiliyor. Bu sayede
kullanıcıya çok işlevsel bir listeleme yapabiliyoruz. Bu işlem için genelde
kullanılan yöntem; tüm verilerin tümünün çekilip sonra javascript kullanarak
göster-gizle şeklinde gösterilmesi. Bu yöntemde ciddi anlamda performans
sıkıntısı yaşarız çünkü 40 tane kaydımız olsa ve bu kayıtlara ait 5′ er de alt
kayıt olsa ilk seferde toplam 200 kayıt listelemiş oluyoruz. Anlatacağım
yöntemde bu işi jQuery Ajax ile birlikte verimli ve efektif bir şekilde
çözeceğiz. (Bugün çok değişik bir gün sanırım havalardan kaynaklanıyor, anlatım
bozukluğu varsa kusuruma bakmayın)

Mekanızmamız iki adet .aspx sayfasından oluşuyor. Birincisi normal
kayıtlarımızı listelettiğimiz GridGenislet.aspx diğeri ise üzerine
tıklayınca açılacak olan kısmın bilgilerini getiren Genisle.aspx

GridGenislet.aspxsayfamızın ilgili kodlarına bakalım. Burada jQuery
ile açılıp kapanma işlemi sırasında oluşacak efekt işini ve Genisle.aspx
sayfamıza Ajax ile ilgili kayıtların gelmesini sağlayacak fonksiyonumuzu
yazıyoruz. Sonrada Tümünü Göster ve Tümünü Gizle olayını ekledim. Sırf jQuery i
biraz daha algılayabilmek adına :)

	$(document).ready(function(){
$('a#tgizle').click( tumunuGizle );
$('a#tgoster').click( tumunuGoster );
});

function tumunuGizle(){
$('div.genisleyenDiv').slideUp();
}

function tumunuGoster(){
$("div.genisleyenDiv").each(function()
{
goster($(this).attr('id'));
});
}
//can damarımız burdaki fonksyion, genisle.aspx e id bilgisini gönderip sayfamızda gösteriyoruz.
function goster(divId)
{
$('div#'+divId).toggle('slow');
$('div#'+divId).load('Genisle.aspx?Id='+divId);
}
[/html]

GridGenislet.aspx.cs sayfamızın ilgili kodlarına bakalım.

[/html]
DataTable dt = veritabani.DataTableGetir("Select top 10 id,baslik,icerik,tarih from yazilar");
GridView1.DataSource = dt;
GridView1.DataBind();

for (int i = 0; i < GridView1.Rows.Count; i++)
{
//burada hersatırın onclick özelliğine goster fonksiyonumuzu atıyoruz ve ilgili id yi yazdırıyoruz.
GridView1.Rows[i].Cells[0].Attributes.Add("onclick", "goster('" + dt.Rows[i][0].ToString() + "')");
}
[/html]

Genisle.aspx sayfamızda ise gelen id değerini alıp sql cümlemizdeki
yerine koyuyor ve listeletiyoruz. Burdaki yöntemde ben GridView üzerine
anlatmaya çalışıyorum, mantığı anlarsanız çoğu yerde bu mekanizmayı
kullanabilirsiniz.

Sadece dilimin döndüğünce mantığı anlatmaya çalıştım, eğer isteyen olursa
çalışır kodları da paylaşabilirim. Çalışan örneği görmek için

tıklayın
. Zaman problemim nedeniyle css ile
süsleyemedim, istendiği taktirde çok şık bir görünüm verilebilir. Herkese güzel
günler diliyor ve konuyu burada noktalıyorum.

Sonunda jQuery ile tanışmak nasip oldu

Günümüz web sitelerini yapmak için ne kendi başına html ,ne css, ne dinamik bir programlama dili nede javascript yeterli oluyor. Elden geldiği kadar yenilikleri takip etmek, güncel olmak gerekiyor. Ezelinden beri web sayfalarında hükümdarlığını sürdüren javascript son yıllarda çeşitli kütüphaneler ile kullanım alanlarını ve şekillerini epeyce değiştirdi. jQuery javascript çatısı (framework) sayesinde hem tarayıcılar arasındaki uyumluluk problemlerinden kurtuluyoruz hemde efekt ve ajax nimetlerinden yararlanabiliyoruz. Bundan 1 sene önce Adem abinin bir sohbetimizde, “muhakkak başlamalısın çok kolay ve kullanışlı bir çatı” dediğini dün gibi hatırlıyorum. Zaman problemlerijqlogo Sonunda jQuery ile tanışmak nasip olduyüzünden 1 sene üzerine şimdilerde nasip oldu ve Google’ da arama yaptığımda karşıma Eburhan hocamızın yazdığı bir birinden mükemmel makaleler çıktı, kendisine ayrıca teşşekürlerimi sunuyorum. Kendi kendime gün bugündür bu yazılardan da öğrenemezsen artık jQuery hayallerinden vazgeçme zamanıdır dedim ve inceden inceden okumaya başladım. Gerçekten çok basit ve kolay anlaşılır bir yapısı var, az buçuk birşeyler yapmaya başladım bile :) Öğrendikçe sizlerlede paylaşmaya çalışacağım. Oh bee dünya varmış, artık eskisi gibi saatlerce hazır betik (script) arayıp zaman kaybetmeyeğim.


Devamını oku olayı..

İster klasik asp isterse asp.net olsun yeni başlayan arkadaşların bir numaralı sorularının başında devamını oku olayı geliyor. Genelde X karakterden büyükse sona iki nokta şeklinde kullanılıyor. Her zaman olduğu gibi birden fazla yapım şekli bulunuyor, fakat ben bu örnekte işi sql e yıkıyorum. Sebebi ise daha performanslı bir yöntem olduğunu düşünmemden ileri geliyor. Örneğin 500 karakterli bir verimiz olsa bunun sql den gelmesi ve işlenmesi 2 adımdan oluşur ve 500 karakterin yüklenmesi zaman kaybı doğurur. Halbuki direk sql cümlemizle olayı çözersek hem tek adımda hemde karakterlerin istediğimiz kadarını alacağımız için sürede kısalacaktır. Bu benim düşüncem belkide aksi gibidir :) Neyse daha fazla uzatmadan sql kodumuza bakalım..

Gördüğünüz gibi geçenlerde bahsettiğim case ve substring ifadesiyle olayımızı hallediyoruz. Eğer alanAdi içindeki karakter 20 den büyükse ilk 20 karakteri gösteriyor sonuna iki nokta ekliyoruz. 20′ den küçükse direk alanAdi içindeki kaydı alıyoruz. İster klasik asp de ister asp.net de kullanabilirsiniz esasında mssql in olduğu heryerde kullanabilirsiniz ;)

SELECT
case
when Len(alanAdi)>20 Then SUBSTRING(alanAdi,0,20)+'..'
else
alanAdi
end as 'kisaAlanAdi', digerAlanAdi
FROM
TabloAdi
[/html]

Yazalım Güzelleşelim..

Güzel bir pazar gününden herkeslere merhabalar. Hafta boyunca işlerimin yoğunluğu sebebiyle siteye birşeyler ekleyemedim. Öncelikle şunu söyleyeyim, pazartesi sabahı sunucuda oluşan olağan dışı bir problem nedeniyle otomatik olarak sistem düzgün çalışan en yakın zamana geri yüklendi fakat epeyce yazı ve sizlerin yorumları silindi. Elimden geldiğince Google’ nin ön belleğinden yazıları bulup siteye ekledim fakat resimler için bu durum malesef söz konusu olamadı. Bu olayndan kendime ders çıkarttım ve bundan sonra her yazımı bilgisayarımda resimleriyle birlikte saklayacağım, doğrusuda sanırım bu :) Hafta içi Emre abimle birlikte güzel bir vadesi geçmiş borçlar raporu yazdık, c# ile tanıştığım süre içerisinde ilk kez rakamlarla boğuştuğum için yeni tecrübeler edindim, bunları ilerleyen zamanlarda sizlerle paylaşacağım. Hafta sonu Açık öğretim sonuçları açıklandı ve Allah’ a şükürler olsunki sonuçlar istediğimden bile iyiydi, bu adrenaline nacizane vücudum daha fazla dayanamadı ve eve gelir gelmez uyumuşum, gözümü açtığımda bu güzel pazar gününe uyanmıştım. Uzun zamandır aklımda olan server ve kabinet temizliğini bugüne planlamıştık. Ben, Selim ve Volkan 2 saatlik başarılı bir operasyonla temizliği tamamladık, şuanda sistem ayakta ve çalışıyor :)

Yazdıklarımı okuduysanız şuanki ruh halimin ne kadar ılımlı ve güzel olduğunu anlayabilirsiniz fakat bu aşşağıda yazacaklarımı engelleyecek bir durum değil.

Dövme, küpe, kılık kıyafet, tutum ve davranışlarımız üzerine: Dünyada ki en asil ve geçmişi en köklü milletlerin başında geliyoruz, bundan onur ve gurur duyuyoruz fakat sürekli yozlaşan gelenek görenekten sürekli uzaklaşan bir gençliğimiz var. Nedendir bilinmez sürekli batılaşma denilen saçma şeyin peşinden gidiyoruz veya gitmeye çalışıyoruz ama herzaman olduğu gibi ilim ve bilim alanında değil sadece kendi gelenek göreneklerimize ters abzürt konular üzerine.. Neden kendimiz gibi olmuyoruz olamıyoruz anlamak mümkün değil. Sokakta yürürken öyle tiplere rastlıyorumki yok diyorum ya bu insan değildir, heryerinde dövme saç sakal bir acayip, mıknatısla yanından geçemezsiniz, he ya bunlar havaalanındaki cihazlardan nasıl geçiyor :| :D Diyeceğim o ki bunlar özenilecek şeyler değil az etrafımıza ülkemize yakışır davranalım. Yoksa bu nesilden sonraki nesili tahmin dahi edemiyorum. Aslında bu konu üzerine yazacak çok fazla şey var, bir ara tekrardan ele alacağım.

Emek ve yapılan saygısızlık: En hassas olduğum konuların başında geliyor. Çünkü emeğin ne olduğunu kralından daha iyi bildiğime inanıyorum. Bu saygısızlık özellikle teknoloji dünyasında ciddi anlamda can sıkıcı boyutta. Ben günlerimi haftalarımı verip ortaya bir şey çıkartıyorum, iyi veya kötü önemli değil. Bunun karşılığında olmamış yenisini yapalım gibi bir durumla karşılaşırsam yaptığım işten soğumak bir yana insanlardan dahi soğuyorum, yüzlerine bakasım gelmiyor, o ağızları yırtmak geliyor içimden. Herşeyin bir adabı ûsuku kaidesi vardır. Nasıl ki ev yaptırırken ustanın başında bekliyorsun, ozaman arkadaşım işininde başında duracaksın, benim zamanım çok kıymetli. Hiç unutmuyorum beş para etmez bir insanın istediği şey için 1 gün kafa patlatıp bir günde kod yazdım, sonra yanıma gelip boşverya silelim dedi. Hem satır satır kodları sildim hemde o karaktersiz şahsı. Bu konuyuda genel olarak bir ara ele alacağım çünkü çok derin bir konu.

İnsanlara balık yemeyi değil tutmayı öğretmemiz lazım: Özellikle programlama öğrenmek isteyen çokca arkadaş var çevremde. Ama istemekle gerçekten istemek arasındaki farkı bilmeyen arkadaşlar. Kendimce yol gösteriyorum başlayın takıldıkça sorun elimden geldiğince yardımcı olurum diyorum ama görüyorum ki bunu alışkanlık haline getirip hiç araştırmadan nede olsa sorsam cevabı geliyor düşüncesindeler. Balık yemeyi boşverelim arkadaşlar hep beraber balığın nasıl tutulması gerektiğini öğrenelim çünkü yarın hepimiz tek başımıza kalabiliriz, çevremizde kimse olmaya bilir ;)

Evet bugün babalar günü, gerçi bu tip günlerede gıcık oluyorumya neyse.. Benim anamın babamın günü bir gün olmaz olamaz arkadaş, onların günü hergündür. Büyüklerimin ellerinden küçüklerimin gözlerinden öpüyorum, sağlıcakla kalın. Ben kaçar :)

Acer Aspire A150L Netbook Windows 7 Performansı

Teknolojiyi yakından takip edenler bilir Windows 7 (Seven) yakın bir süre önce deneme sürümü olarak, Microsoft’ un sitesinden indirilebilir duruma gelmişti. Her ne kadar 10 bilgisayar kullanıcısından 6-7 si ista’ yı beğenmeselerde ben oldukça memnundum ve belkide bu yüzden Windows 7 gelişmelerini sadece göz ucuyla takip ediyordum. Esasında herzamanki Microsoft ürünlerinden biri olacağını düşünüyordum. Windows 7′ nin en büyük özelliği şüphesiz Vista’ nın cömertçe harcadığı kaynak kullanımı aza indirip çok daha performanslı çalışacağı vaadiydi. Geçmişten ders alan kullanıcı kesimi buna çok fazla kulak kabartmamıştır diye düşünüyorum çünkü geçmişte de benzeri söylentiler olmuş fakat sonu hep hüsranla bitmişti. Neyse daha uzatmadan konumuza gelelim. Daha önce kabaca bahsettiğim Acer One A150L netbooka (her nekadar bu isime Microsoft son günlerde fena taksada) bu işletim sistemini kurmup gerçekten verimlimi değilmiyi gözlemlemek istedim ve işe giriştim.

Windows 7 NetBook !Önce hemen Microsoft’ un sitesine girip Windows 7‘ nin iso halindeki kurulum dvd sini indirdim. Hemen şunu söylileyim yaklaşık 6-7 aydır kullandığım Acer netbookda bazı sıkıntılar vardı. Bunların başını sesin az çıkması ve özellikle kablosuz ağ bağlantısındaki dengesizlikler çekiyordu. Esasında vakit ayırıpta bir türlü güncel driver kurmak veya işletim sistemini yeniden kurmak gibi durumlarada yönelemedim. Harici bir dvd rom la kurulum işlemine başladım. Yaklaşık 20~25 dakika gibi bir zamanda işletim sistemi kuruldu. Hemen tanımadığı sürücü varmı diye baktığımda herşeyi tanımış ve adeta uçan bir notebook hissi vermişti. Windows 7′ nin özelliklerini kurcalamadan, Adobe-Reader, Flash Player, Winamp, Winrar gibi olmazsa olmaz programları indirdim ve yükledim. Bunları yaparken wirelessden bağlı olduğumu farkettim, resmen zevkten öldüm çünkü daha demin problemler yaşadığım internet bağlantısında artık en ufak sıkıntı yoktu. Facebook’ a girdim bir kaç video oynattım, ses seviyesi ve kaliteside ciddi anlamda düzelmişti. İşletim sisteminin ufak tefek güncellemerinide yaptıktan sonra, artık zamanı gelmişti deyip üzerine Visual Studio 2008, Mssql 2005, Photoshop ve Front Page’ yi yükledim. Ciddi anlamda inanılmaz çalışıyorlardı, bir kaç projeyi VS ye atıp denediğimde performansın çok çok iyi olduğunu gördüm. Yani sağa sola giderken çok rahat peşinize getirip iş yapabilirsiniz. Bu noktada Microsoft’ un neden NETbook ifadesine kafayı taktığını anlıyorsunuz. Sadece 1024*768 çözünürlük den dolayı ilk başlarda kullanım sıkıntısı yaşıyorsunuz ama bu çözünürlüğe alışmanız hemencek gerçekleşiyor.

Sonuç olarak bu kadarını beklemiyordum. Böylesine düşük bir sistemde böyle güzel çalışan bir işletim sistemi şaşılacak bir olay. Aklıma gelmişken işletim sistemiyle gelen Media Center’ a da sağlıklı bir şekilde kullanabiliyorsunuz. Windows 7′ nin detaylarını açıkcası hiç incelemedim ve merak etmedim amacım sadece düşük sistemlerdeki performansını gözlemlemekti, nitekimde amacıma ulaştım. Hiç düşünmeden netbooklarınıza Windows 7′ i kurabilir ve keyifli bir şekilde kullanabilirsiniz.(Fotoğraf makinem arıza yaptığı için cep telefonumla fotoğrafları çektim, yarın işe gider gitmez ekliyeceğim ;)) Herkese güzel günler diliyorum..

ASP.NET DropDownList, CheckBoxList ve RadioButtonList Kontrollerinin Kullanımı

Klasik asp den asp.net e zar zorda olsa geçmiş biri olarak, .net’ in en hayran olduğum kısımlarından biride form elemanlarının kullanım esnekliği. Yani bir sürü kodla yaptığımız işleri asp.net de çoğu zaman hiç kod yazmadan halledebilmemiz mümkün. Hele ki  Ajax Control Toolkit ile birleşince mükemmel sonuçlar elde ediyorsunuz. Bu yazımda ajaxı işin içine katmadan, sadece temel hatlarıyla DropDownList, CheckBoxList ve RadioButtonList kontrollerinin en çok kullanılan özelliklerini anlatmaya çalışacağım. DropDownList: En aşina olduğumuz kontrollerin başında geliyor. Bu kontrolün içine eleman nasıl ve ne şekilde ekleniyor bir bakalım.

DropDownList1.Items.Add("Eleman Ekle");
// bu şekilde eleman eklediğimizde value = "Eleman Ekle" olacaktır, yani kullanıcının gördüğünün aynısı.
DropDownList1.Items.Add(new ListItem("Görünen Kısım", "değerimiz"));
// burada ise istediğimiz value değerini atayabiliyoruz. "değerimiz" value miz oluyor.
DropDownList1.Items.Insert(0,"Index kullanımı");
// buradaki 0 eklenecek elemanımızın sırasını tahin ediyor. 0 = en üst

CheckBoxList: İçinde checkbox lar olan liste şeklindeki elemanımız oluyor yani birden fazla seçim yapabildiğimiz bir kontrol. Html de böyle bir eleman bulunmuyor, kod yazarak bu tarz bir seçim listesi yapabiliyorduk. Yapması ayrı sıkıntı içinden veri alması apayrı bir sıkıntıydı. Özelliklede RepeatColumns, RepeatDirection ve RepeatLayout gibi ayarlarıyla tam manasıyla istediğimiz şekilde listeleme yapmamıza olanak sağlayan bu kontrolün içinden veri almak da çok basit ve zahmetsiz. DropDownList e eklediğimiz şekilde CheckBoxList içine ekleme yapabiliyoruz. Kodları buraya yazmıyorum,  indirilebilir örnek de hepsi bulunuyor.

Varsayılan şekliyle CheckBoxList

checkboxlist varsayilan ASP.NET DropDownList, CheckBoxList ve RadioButtonList Kontrollerinin Kullanımı

RepeatColumns=”5″ değerini verdiğimizde oluşan görüntü.

RepeatColumns Horz ASP.NET DropDownList, CheckBoxList ve RadioButtonList Kontrollerinin Kullanımı

RepeatColumns=”5″ ve RepeatDirection=”Horizontal” değerlerini verdiğimizde oluşan görüntü.

checkboxlist RepeatColumns ASP.NET DropDownList, CheckBoxList ve RadioButtonList Kontrollerinin Kullanımı

RadioButtonList: CheckBoxList’ in tüm özelliklerini taşıyan bu kontrolün ayrıldığı nokta, sadece bir tane seçim yapabilmemiz.

Yukarıda anlattığım kontrollerin veritabanı ile bağlantısı ise şu şekilde yapılıyor.

SqlConnection conn = new SqlConnection("bağlantı cümlemiz");
SqlDataAdapter sqlAdap = new SqlDataAdapter("Select * from TabloAdi", conn);
DataSet Ds = new DataSet();
sqlAdap.Fill(Ds);
kontrol.DataSource = Ds;
kontrol.DataTextField = "alanAdi"; //görünecek kısım
kontrol.DataValueField="alanAdi2"; //değer (value) kısmı
kontrol.DataBind();

İlgili dosyaları buradan indirebilirsiniz. Umarım faydalı bir yazı olmuştur :)

T-SQL ile newID, Soundex, Case ve Substring kullanımı

Bazı
işlemler vardır kod yazmaya kalkınca dünya kadar satır yazmanız gerekir, halbuki
zaman zaman Sql in nimetlerinden yararlanmak olayları bir çırpıda performanslı
bir şekilde çözmek anlamına geliyor. Bu nimetleri birer örnekle açıklamaya
çalışayım.

NewID() herzaman heryerdeki fiks sorulardan biridir, veritabanından
rastgele nasıl veri çekerim veya veri kümesinin içinden rastgele x kadar kaydı
nasıl çekerim gibi.. satır satır kod yazmak yerine newId fonksiyonunu
kullanabilirsiniz.

Örnek;

	Select * From TabloAdi order By NewID() -- tablodaki tüm kayıtları rastgele getirir.
Select Top 5 * From TabloAdi order By NewID() -- tablodaki tüm kayıtlar içerisinden 5 tanesini rastgele listeler.
[/html]

Soundex() Esasında çok kabarık bir konu, en özet haliyle yanlış
yazımların önüne geçmek için oluşturulmuş bir algoritma.
Buradan

detaylarına bakabilirsiniz. Google' nin "Bunu mu demek istediniz?"
mekanızması bunun en iyi örneklerinden biridir. Google' nin ki kadar gelişmiş
olmasada, hiç yoktan sitenizde kullanabileceğiniz bu sistemi Soundex ile
birlikte yapabilirsiniz. Mesela Abdullah kelimesini aratırken yanlışlıkla
Abdullak
yada Abdullaah yazdığımızda klasik arama yöntemi
olan Like ile kayıt boş dönecektir, halbuki soundex
kullandığımızda Abdullah kelimesini bulmamız mümkün.

SELECT * FROM TabloAdi WHERE SOUNDEX('kelime') = SOUNDEX(AlanAdi)
[/html]

Case Sql cümlemizin içinde if kullanımının neredeyse birebir aynını bu
şekilde kullanabiliriz. Amacımız elimeze geçen kaydın tam istediğimiz şekilde
olması, sql cümlemizden gelen veriyi direk grid veya benzeri bir nesnede
listelememizde çok daha verimli olacaktır.

-- sadece if else şeklinde kullanım
SELECT
Case
When Adsoyad='Abdullah UĞRAŞKAN' Then 'Tamamdır :)'
else 'Kimsin sen ?'
end as 'Sonuc'
FROM
kullanicilar

-- if elseif else şeklinde kullanım
SELECT
Case
When Adsoyad='Abdullah UĞRAŞKAN' Then 'Tamamdır :)'
When AdSoyad='Deneme' Then 'Sende Tamam ol :)'
else 'Kimsin sen ?'
end as 'Sonuc'
FROM
kullanicilar

-- eğer koşul gerçekleşirse sonucu diğer tablodan almaya ilişkin bir örnek. Yani eğer adısoyadı abdullah ise görevinin ne olduğunu döndürüyoruz.
SELECT
Case
When Adsoyad='Abdullah UĞRAŞKAN' Then (Select gorev from gorevler where id=kullanicilar.gorevid)
else 'Görevsiz.'
end as 'Sonuc'
FROM
kullanicilar

-- örnekler biraz bencil olabilir ama aklıma başka bişiy gelmedi :)
[/html]

SubString Kaydın başlangıç ve bitişini belirleyebildiğimiz klasik
substring fonksiyonun aynısı. Kaydın istediğimiz kısmını görüntülememize olanak
sağlan fonksiyonumuz.

select Substring(AlanAdi,1,10) from TabloAdi -- 1=başlangıç, 2=bitiş karakteri.
[/html]

GridView ve Modal Popup Extender ile birlikte çalışma

Ajax uygulamaları artık web sayfalarının olmazsa olmazlarından, Asp.Net
ile birlikte
Ajax Control Toolkit
ile
birlikte ajaxın nimetlerinden en iyi ve rahat şekilde faydalanmamız
hedeflenmiş. Bu yazımdamodalbox GridView ve Modal Popup Extender ile birlikte çalışma
Modal Popup Extender
ile GridView satırında bulunan kaydın id si
ile birlikte nasıl işlerimizi yürüteceğimizi anlatmaya çalışacağım. Bu
konuda beni bilgilendiren Yunus Emre ye sonsuz teşekkürlerimi
sunuyorum.


Burada
Modal Popup kontrolüne ait
bilgiler bulunuyor. Klasik kullanımı oldukça basit olan bu kontrolü GridView
gibi kayıtların listelendiği nesnelerde kullanmak için farklı yöntemler
kullanmak gerekiyor. Bu yöntemde aptal buton adı verilen bir buton kullanıp,
modal popupu bir nevi kandırıp hata vermemesini sağlıyacağız.

Modal Popupumuzun güzel görünmesi için gerekli olan sitil kodlarımız.

.popupArka{
    background-color:#333;
    filter:alpha(opacity:90);
}

.popupKapat{
    text-align:right;
    background-color:#706c6c;
    padding:2px;
    border-bottom:1px solid #c0c0c0;
}

.popupKapat input{
    font-weight:bold;
    width:25px;
    height:25px;
}

.popupKapat span{
    float:left;
    font-size:18px;
    color:White;
    font-weight:bold;
}

Üstten aşşağıya doğru açıklamaya çalışayım. ScriptManager ajax
kontrollerinin çalışması için gerekli olan mekanızmamız. UpdatePanel,
içerisinde olayların ajax kullanılarak gerçekleşeceği alan. Yani burada
sayfamız yenilenmeden işlemlerimiz gerçekteşecek. GridView bildiğimiz Grid
:) burda dikkat etmemiz gereken noktalar
onrowcommand="GridView1_RowCommand" burdaki ifadeyi aşşağıdaki kodlarda
görebilirsiniz. TemplateField içinde bir adet LinkButon' umuz bulunuyor.
Bunu normal buton imagebuton şeklinde de değiştirebilirsiniz. Buna
tıklandığında modalboxumuz açılacak. Burdaki önemli nokta
CommandName="Detay"
ve CommandArgument='gidecekDeğer' Aşşağıya
indiğimizde modal boxun kendisini görüyoruz. İçinde sitil ve diğer
tanımlamalarımız bulunuyor. Bu tanımlamalardan biride yukarda bahsettiğim
aptalbuton. Hemen altta ise
panel' imizi panelimizi görüyoruz. ModalPopup bu paneli bize gösterecek.
Belki biraz karışık bir anlatım oldu ama örneği uygulayınca hiçde öyle
olmadığını göreceksiniz ve sürekli bu kontrolü kullanmak isteyeceksiniz.

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>







Sayfa 9 toplam 23 sayfa« Önceki...56789101112131420...Sonraki »