ASP.NET kategorisi blog kayıtları
Accordion kontrolünde onclick yerine onmouseover ile pane'i açmak

Bir soru üzerine ilgimi çektiği için hazırladım.

Accordion kontrolü üzerinde bildiğiniz üzere AccordionPane ismindeki paneller yer almaktadır. Bunlara tıkladığınızda ise kendileri açılmaktadır :)

Tıklamak yerine fare üzerine getirildiğinde AccordionPane'i açmak istiyor olabilirsiniz bu durumda yapmanız gereken :

1) sayfanıza aşağıdaki javascript'i eklemek :

function PanelAc(Numara){

var sonuc = $get("Accordion1").AccordionBehavior;

sonuc.set_SelectedIndex(Numara); }

Daha sonraki bölümde ise iş size kalmıştır, nerede nasıl çağıracağınız veya hangi event ile ilişkilendireceğiniz :

Benim yaptığım örnekte Northwind içerisindeki kategoriler ve ürünler ile ilgili bir yapı var. Kategori adeti kadar AccordionPane dynamic olarak ekleniyor sayfaya ve herbirinin içerisine ilgili kategori altındaki ürünler ekleniyor. Fare kategori isminin üzerine getirildiğinde ise seçilmiş gibi davranıp açılıyor :

void Doldur()

{

SqlConnection cn = new SqlConnection();

cn.ConnectionString = "server=.;database=Northwind;uid=***;pwd=***;multipleactiveresultsets=true;";

SqlCommand cmd = new SqlCommand();

cmd.Connection = cn;

cmd.CommandText = "Select * from Categories";

SqlCommand cmd2 = new SqlCommand();

cmd2.Connection = cn;

cmd2.CommandText = "Select * from Products where CategoryId=@Id";

cn.Open();

SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())

{

cmd2.Parameters.Clear();

cmd2.Parameters.AddWithValue("@Id", dr["CategoryId"]);

AccordionPane ap = new AccordionPane();

Label lbl = new Label

{

Text = dr["CategoryName"].ToString(),

ID = "lbl" + dr["CategoryId"]

};

lbl.Attributes.Add("onmouseover", "PanelAc(" + (int.Parse(dr["CategoryId"].ToString()) - 1) + ")");

ap.HeaderContainer.Controls.Add(lbl);

SqlDataReader dr2 = cmd2.ExecuteReader();

while (dr2.Read())

{

ap.ContentContainer.Controls.Add(new LinkButton { ID = "lb" + dr2["ProductId"], Text = dr2["ProductName"].ToString()+"<br/>" });

}

dr2.Close();Accordion1.Panes.Add(ap);

}

cn.Close();

}

Bu metot içerisinde dikkat edilmesi gereken en önemli nokta

lbl.Attributes.Add("onmouseover", "PanelAc(" + (int.Parse(dr["CategoryId"].ToString()) - 1) + ")");

satırıdır. Bu satırda fare label'ın üzerine geldiğinde Pane'in açılması sağlanıyor.

Hepinize iyi çalışmalar


Bora BURGUCUGİL

bora.burgucugil@bilgeadam.com

Bilge Adam Bilgi Teknolojileri Akademisi

Bireysel Yazılım Geliştirme Eğitmeni - Beşiktaş


CSS Transparent BackColor

CSS tarafından herhangi bir nesnenin arka plan rengini transparan hale getirmek için aşağıdaki kodu kullanabilirsiniz :



filter:Alpha(opacity=50);

Not : 50 değeri geçiş derecesini belirler.

HTML'de kullanılan karakter kodları

Bu kodlara her ihtiyaç duyduğumda google'a başvurmaktan sıkıldım :)

ğ : &#287;
Ğ : &#286;
ı : &#305;
İ : &#304;
ş : &#351;
Ş : &#350;
ü:&#252;
Ü:&#220;
Ö:&#214;
ö:&#246;

T-SQL 'de içinde bulunduğunuz ayın ismini almak

SELECT DATENAME(month, GETDATE())

ifadesi size T-SQL de içinde bulunduğunuz ayın ismini dönecektir.

month ifadesi yerine day veya year yazmak ise geriye gün veya yılı dönecektir.


Ajax UpdatePanel, Wizard, Validators ve Microsoft JScript runtime error: 'null' is null or not an object hatası

VS ile çalışırken Ajax ve Wizard kullanımı sırasında yaşadığım bir problemden bahsetmek istiyorum.

Eğer bir Wizard içerisinde Validator kullanırsanız, belirtilen hatayı almanız muhtemeldir. Konuyu araştırdığımda bu problemin sadece IE'ye özel olduğunu başka tarayıcılarda bu hatanın çıkmadığını öğrendim ve açıkçası birazda şaşırdım :)

Hatanın çözümü olarak Wizard içerisinde ki validator kontrollerinizi ve validator'lara bağlı olan kontrollerinizi aynı ValidationGroup ataması ile güncellemelisiniz.

Örneğin Step 1 dekilerin hepsini Sayfa 1 olarak değiştirin eğer var ise diğerlerini sayfa başına gruplandırın. Sorun bu şekilde çözülmekte :)

Bu konunun tartışıldığı forumu incelemek için buraya tıklayabilirsiniz.

İyi çalışmalar


Web sitenize icon ekleyin

Geliştirmiş olduğunuz web sitenize internet explorer üzerinde icon eklemek için yapmanız gereken tek şey

<link rel="SHORTCUT ICON" href="images/myIcon.ico"/>

bildirimini sayfanızın html kodları arasına yerleştirmek :)

Ayrıntılı bilgi için :

 http://msdn2.microsoft.com/en-us/library/ms537656.aspx


Visual Studio 2008 Beta 2 ve Ajax 1.0

Herkese merhaba,
Microsoft Visual Studio Beta 2 versiyonunu
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx linkinden indirebilirsiniz,
fakat dikkat etmeniz gereken bir durum sözkonusu.

VS 2008 Beta 2 yi kurduktan sonra .Net Framework 3.5 kurulumundan dolayı Ajax 1.0 dll leriniz çalışmayabilir ve tanınmayabilirler.

(Benim başıma geldiği için buraya yazıyorum :))

Bu problemden kurtulmak için kurulum sonrasında verilen uyarıya dikkat etmek gerekiyor

Important Instructions for Installing Visual Studio 2008 Beta 2
After the Beta 2 installation has finished, you should run this script to ensure that the installation of .NET Framework 3.5 Beta 2 will not affect the development of ASP.NET AJAX 1.0 applications.

bu uyarıda bir exe aracılığı ile bir scriptin çalıştırılması gerektiği söyleniyor (ki doğru :) )

Exeyi bir kere çalıştırdıktan sonra policy ile ilgili bazı değişiklikler yapılıyor ve Ajax 1.0 ile çalışmaya devam edebiliyorsunuz.

Zip dosyasını buradaki linkten indirebilirsiniz

İyi çalışmalar


Ajax ScriptManager

İleride çıkacak olan versiyonlarda değiştirilir mi bilemem ama şu anki versiyonda  Script Manager ın çalışması için her zaman HTML kodlarının en üstünde yer alması gerekiyor. Yani form altındaki ilk element ScriptManager olmalı.

Aksi taktirde Ajax kontrollerinizin çalışmadığını düşüneceksiniz :)

aman dikkat !!!


Ajax Slide Show Extender problemi

Biraz önce ajax slide show extender ile ilgilenirken farkettiğim bir problemden bahsetmek istiyorum.

Slide Show Extender bildiginiz gibi resimleri slayt geçişi olarak göstermeye yarayan bir tool fakat bu tool çalışırken html kod sırası olarak Image kontrolünün altında olmazsa çalışmıyor aman dikkat :)