burasibedava.com BURDA HERŞEY BEDAVA

21 Haziran 2012 Perşembe

Jquery Ajax Veritabanı ile Haber Manşet Yapmak

Yaklaşık 2 ay önce birine bir site yaparken verileri veri tabanından çeken ajax ile yapılmış bir haber manşet lazım oldu. İnternetteki örneklerin çoğu dinamik değil yani veritabanından veri almıyor. Bilgiler html sayfasında kayıtlı. Ama şükürki bir örnek buldum. İllaki benim gibi birileride bu örneği arıyordur. Manşet görünümünden bir örnek aşağıda verdim sayfa altın dada bu manşetin kaynak kodlarına ulaşabilirsiniz. Bu arada unutmadan sölim veri tabanı olarak access kullanılmış.
ajax haber manşet
ajax ile yapılmış bir haber manşet örneği

Kaynak kodları aşağıdan indirebilirsiniz
jquery_manset ASP.NET

Asp.net te Gridview in içindeki nesnelere erişmek

Merhaba arkadaşlar bu makalede bir dönem beni bir hayli uğraştıran bir konuya deyinicem. Gridview içinde yer alan textbox veya label gibi nesnelere nasıl kontrol sağlıyacaz ondan bahsedeceğim.
 Sayfanızda yer alan bir datalist veya Gridview nesnesine .cs veya .vb gibi dosyanızdan erişmek istediğinizde hata alırsınız. Yani sayfada bulunan diğer elamanlar gibi erişemessiniz. Bunun için özel bir metod kullanacağız.

<asp:GridView ID="YAP_TEK_GRID" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">

<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:TemplateField>
<ItemTemplate>
<asp:Labell ID="Label1" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CheckBoxField DataField="bransmi" HeaderText="bransmi"
SortExpression="bransmi" />
<asp:BoundField DataField="brans" HeaderText="brans" SortExpression="brans" />
</Columns>
</asp:GridView>

Burada bulunan label1 nesnesine .cs sayfasından ulaçamassınız ulaşmanızı sağlayan kod söyle:
(Label)YAP_TEK_GRID.Rows[0].FindControl("Label1")).Text Bu kod sayesinden ulaşabiliriz içindeler ne işe yarıyor açıklayalım.
"(Label)" yazan yer sayfada bulunan bir label nesnesine ulaşacağımızı belirtiyor.
"YAP_TEK_GRID" sayfada bulunan ve içindeki nesneye ulamak istediğimiz Gridview in adıdır.
"Rows[x]" ulaşmak istediğimiz label nesnesi gridview de hangi satırda bulunuyor onu belirtiyor.
"FindControl("Label1")).Text" label1 isimli kontrolun içindeki text anlamına gelmektedir.
Son olarak örnek verirsek
(Label)YAP_TEK_GRID.Rows[0].FindControl("Label1")).Text = "Köksal İyigün"; dersek o labelin text değeri "Köksal iyigün" olarak değişecektir.

Umarım faydalı olmuştur.
İyi çalışmalar
Köksal İyigün
koksal_iyigun@aspnedir.net

20 Haziran 2012 Çarşamba

Teknoloji Tasarım Dersi’ne Ne Oldu?

Teknoloji Tasarım Dersi’ne Ne Oldu?

Asp.Net Site içi Arama Yapma Detaylı Anlatım

 Öncelikle paylaştığım konunu visual studio dosyasını http://ul.to/iynrbo9e indirebilirsiniz.

Not: açılan sitede üst barda 5 ten geriye sayıcak bitince " Skip Ad "'e basın download sayfası gelicek

İlk Önce bir Master Page oluşturup... Bir TextBox ve bir Button atıyoruz..

Daha sonra Sitede Ara! butonunun click Event'inde aşağıdaki kodları yazıyoruz..


1) Textbox'a girilen değer bir kelimemi yoksa birden fazlamı onu kontrol ediyorum. Eğer içinde boşluk varsa birden fazladır.

2) Daha sonra textbox'taki değeri boşluğa göre Split edip bir diziye atıyorum.. Kelimeleri tek tek işleyebilmek için.

3) Querystring üzerinde kullanabilmek için string yol değişkeni değeri boş olacak şekilde tanımlıyorum.

4) Dizinin içinde dizinin boyutu kadar dönüyorum

5) ve yol değişkenin querystring yolu olcak şekilde oluşturuyorum.
bu for döngüsünün sonucu şu şekilde çıktı vericek...
kelime0=....&kelime1=...&

6) Yukardaki sorguyu oluştururken her dönüşte += yaparak üzerine ekleme yaptıgı için sonda bir tane " & " işareti fazladan olacak.. Onu substringle yol'dan çıkarıyorum..

7) Daha sonra Response redirectla arama sayfasına querystring yolunu veriyorum..
Şöyle bir çıktı olmuş oluyor.....
arama.aspx?kelime0=...&kelime1=....&....

8) Textbox Boşluk içermiyorsa tek kelimeyi querystring'le yolluyorum.

Master Page'ten 1 arama.aspx sayfası türetelim... ve ContentPlaceHolder içine bir tane DataList atalım...
Daha Sonra aşağıdaki kodları yazalım...



1) Kaç tane query var onu öğrenip queryCount değişkeninne atıyorum...
2) Az öncekine benzer şekilde.. Veritabanında arama yaptırcak sorgu değişkenini yine boş olucak şekilde tanımlıyorum..
3) Burda gelen QueryString'ler 1 den fazla ise Or kullanarak birden fazla sqlSorgusu oluşturuyorum..
4) queryString sayısı kadar dönüp sorguyu LIKE arama komutuyla bütün queryString verilerini arattıryorum...
5) Bunun çıktısı şu şekilde olur....

"makaleBaslik LIKE '%kelime0 or makaleBaslik LIKE '%kelime1 or.... %' or " şeklinde olcak..
6) Burası query sayısı 1 ise oluşacak sorgu..
7) Veri okuyorsa
8) Arama.aspx'e attıgım Datalist'e Bind ediyorum
9) Okumuyorsa hata sayfasına gönderiyorum.. Bu kadar.. Çalışmasını göreLim.. Çok güzel şekilde çalıştı yalnız bu kodlar sadece makale başlıklarında arama yapar içerikte arama yapmak istiyorsanız sorguyu çevirebilirsiniz kolay gelsin...

Projenin Çalışır halini linkten indirebilirsiniz.. Veritabanı kendi kodlarınıza göre ayarlayın..

19 Haziran 2012 Salı

Datalist içindeki bir nesneye(label,textbox vb.) ulaşmak

Merhaba arkadaşlar bir önceki makalede gridview içerisindeki nesnelere ulaşmayadan bahsetmiştim. Bu makalede ona benzer bir konu olan datalist içinde yer alan textbox veya label gibi nesnelere nasıl kontrol sağlıyacaz ondan bahsedeceğim.
 Sayfanızda yer alan bir datalist nesnesine .cs dosyanızdan erişmek istediğinizde hata alırsınız. Yani sayfada bulunan diğer elamanlar gibi erişemessiniz. Bunu gerçekleşmesi için farklı bir metot uygulayacağız. Fincontrol metodunu kullanacağız.
Findcontrol nedir ondan kısaca ondan bahsedeyim. Findcontrol asp.net sayfanızdaki nesnelerden bilgi almaya veya onlara bilgi eşitlemeye yarayan bir metottur. Dileseniz materpageden de değer isteyebilir yada orada bulunan nesnelere değer atayabilirsiniz. Somut örnek vermek gerekirse bir datalist yada gridview içinde bulunan nesnelere erişim sağlayamassınız ondan dolayı bu nesnelre ulaşırken bu metodu kullanmanız gerekmektedir.
 (Label)datalist_adi.FindControl("Label1")).Text Bu kod sayesinden ulaşabiliriz içindeler ne işe yarıyor açıklayalım.
"(Label)" yazan yer sayfada bulunan bir label nesnesine ulaşacağımızı belirtiyor.
"datalist_adi" sayfada bulunan ve içindeki nesneye ulamak istediğimiz datalist in adıdır.
"FindControl("Label1")).Text" label1 isimli kontrolun içindeki text anlamına gelmektedir.
Son olarak örnek verirsek
(Label)datalist_adi.FindControl("Label1")).Text = "Köksal İyigün"; dersek o labelin text değeri "Köksal iyigün" olarak değişecektir.

Umarım faydalı olmuştur.
İyi çalışmalar
Köksal İyigün
koksal_iyigun@aspnedir.net

GridView içinde radio button kullanmak

Merhaba arkadaşlar bu kez internette çok sık rastlamayacağınız bir makalede buluştuk. Konumuz bir gridview içinde radio buton kullanımından bahsedeceğim. İşin aslı normal html formatta radio buton kullanabilirsiniz ama bu biraz farklı çünki html ile kullanıldığında istediğiniz sonuçları alamayabilirsiniz. Zaten notmal radio kullandığınız da değerini sadece javascript ile alabilirsiniz. Şimid biz kendi konumuza yoğunlaşalım. Bir problem örneğiyle başlayalım. Farzı misal veritabanınızda bulunan kayıtları bir gridview e aktardınız ve o kaytlardan sadece birini seçip kullanıcıya işlem yaptırmak istiyorsunuz.


Ben bir sigorta örneği ile konuyu anlatacağım. Diyelim veritabnınızda sigorta şirketleri kayıtlı ve siz kullanıcıya radio buton ile birini seçip işleme devap ettirmek isityorsunuz.

Yukarıdaki resimde sadece bir kayıt var ama siz fazla olarak düşünün :). Şimdi bunu nasıl yapacağız ondan bahsedelim. İlk olarak sayfanıza bir gridview ekleyiniz ve onu bir tada sourceye bağlayınız.
Tamam iyide radio ları nasıl ekleyeceğiz. Onu da farklı bir yontemle yapacağız. Şöyle;
Radioların çıkmasını istediğiniz yere bir literal ekleyiniz.
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
Tamam literali uygun yere eklediniz bunun radio ile alakası ne diyeceksiniz. Bu literalin içine source tarafından kod yarak radio yu ekleyeceğiz. Tamam güzel anladıkta neden böyle bir şey yapıyoruz?. Şunadan bunun içindeki tüm radiolara kod tarafından ulaşmak için.
şimdi sonraki adım olakra source yani cs kodlarını yazdığımız tarafa geçerek literalin içini dolduracağız ama dikkat edilecek bir durum var bunu giridview içindeki satırlar her oluşturulduğunda yapacağız yani 'OnRowCreated="trafik_grid_crated"' özeliiğini ekleyeceğiz giridviewe.
ve kod tarafında da

protected void trafik_grid_crated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Literal item = (Literal)e.Row.FindControl("Literal1");
item.Text = string.Format("<input type=\"radio\"name=\"radio1\"id=\"radio{0}\" value=\"{0}\" runat=\"server\"/>", e.Row.RowIndex);
}
}
burada trafik_girid benim girid nesnemin adı.
buradaki kodların kısaca anlamı giride her kayıt yüklendiğinde literal içerisini yazdığım html kodlarda ekleniyor. Böylece her satırda radiolarım çıkmış oluyor. Burada siz yabancı gelecek bir kodda (Literal)e.Row.FindControl("Literal1"); olabilir bunu kullanmamızın amacıda giridview gibi nesnelerin içindeki nesnelere direk erişim saylağamiyoruz. bunun için önce o giridviewe erişim sağlayıp onun içindeki literal nesnesine erişim sağlıyoruz. bunun hakkında detaylı bu makaleyi okuyabiirsiniz.
Şimdi bu işlemden sonra bir fonksiyoun oluşturacağız bunuda butana basıldığında kullanacağız. Bu fonksiyon bize seçilen radio nun ne olduğunu anlamamıza yarıyacak.
private int trafik_grid_SelectedIndexChanged
{
get
{
if (string.IsNullOrEmpty(Request.Form["radio1"]))
return -1;
else
return Convert.ToInt32(Request.Form["radio1"]);
}
}

yukarıdaki kodlar formda yer alan radio id li form elemanını kontrol ederek işaretlimi değilmi bunu anlamamızı sağlayacak.
ve son olarak sayfamıza eklemiş olduğumuz bir butona click olayı vererek örneğimizi bitireceğiz

protected void trfk_sgrt_btn_click(object sender, EventArgs e)
{

if (trafik_grid_SelectedIndexChanged != -1)
{
label1.Text = ((Label)trafik_grid.Rows[trafik_grid_SelectedIndexChanged].FindControl("Label5")).Text;
}
}

burada ilgili butona tıkladığımızda label1 isimli labela trafik_grid.Rows isimli gridviewin fonksiyondan dönen satırımdaki label5 isimli labelin değeri yazılacaktır. ben label5 e sigorta ismini eşitlemiştim doğal olarak label1 seçilen sigorta ismini eşitleyecektir.
Biraz karışık bir anlatım oldu ama inş işinize yarar.
Başka bir makalede görüşmek üzere Sağlıcakla kalın...
Köksal İYİGÜN
koksal_iyigun@aspnedir.net

15 Haziran 2012 Cuma

Visual Basic Tarih Fonksiyonları

Tarih ile alakalı tüm fonksiyonlar
Formunuza 11 adet CommandButton 2 adet Label ve 2 adet TextBox ekleyiniz ve aşağıdaki kodu olduğu gibi kopyala yapıştır yapınız.

Private Sub Command1_Click()
    Label1 = DateDiff("d", Text1, Text2)
End Sub


Private Sub Command10_Click()
deger = InputBox("Eklenecek gün sayısını giriniz..")
If deger = "" Then Exit Sub
Label1 = DateAdd("d", deger, Date)

End Sub

Private Sub Command11_Click()
gun = Array("Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi")
tarih = InputBox("Bir tarih giriniz..", "", Date)
If tarih = "" Then Exit Sub
Label1 = gun(Weekday(tarih) - 1)


End Sub


Private Sub Command2_Click()
    Label1 = DateDiff("m", Text1, Text2)

End Sub


Private Sub Command3_Click()
    Label1 = DateDiff("yyyy", Text1, Text2)

End Sub


Private Sub Command4_Click()
    Label1 = DateDiff("w", Text1, Text2)

End Sub


Private Sub Command5_Click()
Label1 = Day(Date)

End Sub

Private Sub Command6_Click()
Label1 = Month(Date)

End Sub

Private Sub Command7_Click()
Label1 = Year(Date)

End Sub

Private Sub Command8_Click()
deger = InputBox("Eklenecek yıl sayısını giriniz..")
If deger = "" Then Exit Sub
Label1 = DateAdd("yyyy", deger, Date)



End Sub

Private Sub Command9_Click()
deger = InputBox("Eklenecek ay sayısını giriniz..")
If deger = "" Then Exit Sub
Label1 = DateAdd("m", deger, Date)

End Sub


Private Sub Form_Load()
Width = 4830
Height = 6915
Me.BorderStyle = 1

Command1.Caption = "Gün Farkı"
Command2.Caption = "Ay Farkı"
Command3.Caption = "Yıl Farkı"
Command4.Caption = "Hafta Farkı"
Command5.Caption = "Gün Al"
Command6.Caption = "Ay Al"
Command7.Caption = "Yıl Al"
Command8.Caption = "Tarihe Yıl Ekele"
Command9.Caption = "Tarihe Ay Ekle"
Command10.Caption = "Tarihe Gün Ekle"
Command11.Caption = "Girilen Tarihin Gününü Bul"

Text1 = DateAdd("d", -Day(Date) + 1, Date)
Text2 = Date
Label2.Caption = "Not: Eğer tarih eklemede -değer kullanırsanız tarih eklemez çıkarır. Örnek : Tarihe Yıl Ekle düğmesine basınız gelen İnputBox kutusuna  -1 (eksi bir) eklerseniz bulunduğunuz yıla bir eklemez! bir çıkarır. Yıl 2005 ise 2004 Olur."
Label1.Font.Size = 14
Label1.Alignment = 2
Label1.Appearance = 0
Label1.BorderStyle = 1
Caption = "Tarih Farkı [ www.okxd-jc.com ]"

Command11.Top = 3600
Command11.Left = 2880
Command11.Width = 1575
Command11.Height = 615
Command10.Top = 4200
Command10.Left = 360
Command10.Width = 1695
Command10.Height = 495
Command9.Top = 3720
Command9.Left = 360
Command9.Width = 1695
Command9.Height = 495
Command8.Top = 3240
Command8.Left = 360
Command8.Width = 1695
Command8.Height = 495
Command7.Top = 2040
Command7.Left = 2880
Command7.Width = 1575
Command7.Height = 495
Command6.Top = 2520
Command6.Left = 2880
Command6.Width = 1575
Command6.Height = 495
Command5.Top = 3000
Command5.Left = 2880
Command5.Width = 1575
Command5.Height = 495
Command4.Top = 2280
Command4.Left = 360
Command4.Width = 1695
Command4.Height = 495
Command3.Top = 1680
Command3.Left = 360
Command3.Width = 1695
Command3.Height = 495
Command2.Top = 1080
Command2.Left = 360
Command2.Width = 1695
Command2.Height = 495
Command1.Top = 480
Command1.Left = 360
Command1.Width = 1695
Command1.Height = 495
Text2.Top = 960
Text2.Left = 2880
Text2.Width = 1575
Text2.Height = 285
Text1.Top = 480
Text1.Left = 2880
Text1.Width = 1575
Text1.Height = 285
Label2.Top = 4800
Label2.Left = 360
Label2.Width = 4095
Label2.Height = 975
Label1.Top = 1440
Label1.Left = 2880
Label1.Width = 1575
Label1.Height = 375

End Sub