PDA

Tam Sürümünü Görmek İçin : ASP.NET ile Küçük Bir DataGrid Çalışması


muharrem_tac
05/02/2003, 20:53
http://www22.brinkster.com/cafeelite/datagrid.aspx ardesine DataGrid ile yapılmış bir çalışma attım.Kaynak kodları da aynı yerde.

Fakat açık söyleyeyim bu basit çalışmayı yaparken günlerimi gecelerimi harcadım.Çok basit bir sorun yüzünden.Burada da söyleyelim ki www.brinkster.com 'da test çalışmaları yapan arkadaşlar da benim sıkıntımı çekmesinler.Sorun şu:
Visual Studio .NET CodeBehind yani arka plan kodlarını kullanıyor.Sizin çalışma yaptığınız sayfa sayfaniz.aspx uzantısı ile kaydediliyor ve bu sayfanızın VB.NET kodları sayfaniz.aspx.vb bir başka sayfada bulunuyor.Sayfanizdan bu VB kodlarına da şöyle referans veriliyor:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="sayfaniz.aspx.vb" Inherits="sayfaniz"%>

Buradaki Inherits de sizin VB kodlarını yazarken oluşturulan class (sınıf) ismi.Bu şekildeki bir çalışma neticesinde roottaki bin dizininde bir .dll dosyası oluşturuluyor.Fakat brinkster bu şekildeki bir çalışmayı kabul etmiyor.Nedeni güvenlik olabilir.

Ya ne olacak?Yazdığınız kodları burada benim yaptığım gibi <script language="vb" runat="server"></script> tagları arasına yazmak.Maalesef böyle bir çalışmada VB kodlarında kod tamamlama (intellisense) özelliği çalışmıyor HTML'de ise durum normal.Yani kod tamamlama aktif.


Mingitau
05/02/2003, 21:33
Ya da bilmemne.vb
dosyasındaki kodları
bilmemne.aspx
in baş tarafına
<script></script> ile eklemek ? ;) Hem kod tamamlat hemde çalıştır...:D

muharrem_tac
05/02/2003, 22:15
Ben de öyle yapıyorum zaten.Ama nedir arada birsürü fark var.Misal bir buton,bir text kutusu bir de label 'den oluşan basit bir sayfada Visual Studio .NET şöyle bir kod yazıyor:
bilmemne.aspx kodu:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="bilmemne.aspx.vb" Inherits="datagrid2.bilmemne"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>bilmemne</title>
<meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
<asp:Label id="Label1" runat="server"></asp:Label>
</form>
</body>
</HTML>
bilmemne.aspx.vb kodu:

Public Class bilmemne
Inherits System.Web.UI.Page
Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents Label1 As System.Web.UI.WebControls.Label

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "Merhaba " + TextBox1.Text
End Sub
End Class

Oysa ki tek yapılması gereken şu:

<%@ Page Language="vb"%>
<script language=vb runat=server>
Sub tikla(ByVal sender As System.Object, ByVal e As System.EventArgs)
Label1.Text = "Merhaba " + TextBox1.Text
End Sub
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//TR">
<HTML>
<HEAD>
<title>bilmemne</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Button" OnClick="tikla"></asp:Button>
<asp:Label id="Label1" runat="server"></asp:Label>
</form>
</body>
</HTML>

Bu durum bana biraz daha normal geliyor.Alışık olduğumuz kod biçimi de bu zaten.

Bu arada bilmemne.aspx dosyasının adresi:

http://www22.brinkster.com/cafeelite/bilmemne.aspx

SGurel
05/02/2003, 23:13
Selam ile,
Datagrid'e kod yazdırırken .vb ekli bir dosya kullanmadım şimdiye kadar. Galiba editörlerimiz farklı ya da yöntemlerimiz. Ben datagrid denemelerimi WebMatrix ile yaptım. Verileri datagrid ile "Sözler" ve bu veritabanındaki verileri editleyebildiğiniz "Sözler edit" örneklerini http://www30.brinkster.com/rehberco/index/prlist.asp?Sira=2 adresinden indirip inceleyebilirsiniz. Ayrıca Sözler örneğinin çalışan hali http://www.brinkster.com/rehber/bilbul/palindrom.aspx te palindromların gösteriminde kullandım.
Demek istediğim muhakkak .vb uzantılı dosya kullanımı gerekmiyor galiba. Ne dersiniz?
Kolay gelsin
Kolay gelsin

Çakya Muni
06/02/2003, 10:06
Tabii ki Gerekmiyor
.vb yada .cs uzantılı yazdığın kodlar Code-Behind denilen yaılım tipinde gerçerli. VS.NET bir web aplication için oluşturulken tün kodları bir dll haline geitriyor ve kodlar bu DLL üzeirnde çalışıyor, bu da kodların daha hızlı çalışmasını sağlıyor.

Brinkster de bu şekilde çalışmamasının sebebi global.asa kullanamoyor olmakla aynı,. Birnkster her kullanıcı için bir IIS Aplication açmıyor, bunun yerine var olan bir IIS Aplication da bir klasör açıyor bu durumda ise DLL kullanma yada global.asa(x) kullanman mümkün olmuyor.

muharrem_tac
06/02/2003, 19:21
Tabii bunu duyunca hemen sormak lazım.IIS 'de application açmadan nasıl klasör açabiliriz?

Çakya Muni
06/02/2003, 21:08
var olan aplicationlar içinde MKdir, MD, sağ tıklayıp yeni klasör diyerek oluştururulan her klasör Application açılmadan açılan klasör oluyor. (walla çok garip bir cümle oldu :D )

yanii wwwroor üzerinde Muni diye bir klasör açarsan buna http://localhost/muni olarak erişebilirsin ancak muni klasörünün içine koyacağın global.asa dosyası çalışmayacaktır. çalışması için bunun IIS e virtual directory olarak tanımlanması gerekiyor.

muharrem_tac
07/02/2003, 01:07
Teşekkürler.Böyle birşeyi hiç düşünmemiştim.Çak! Ya Muni

Cengiz HAN
11/03/2003, 21:50
<%@ Page Language="vb" Codebehind="bilmemne.aspx.vb" Inherits="datagrid2.bilmemne"%>

yukarıdaki şekilde tanımlarsanız datagrid2 virtual dir. içinde çalıştırmanız gerekir ancak bunu directory en bagımsız çalıştırmak isterseniz şu şekile deneyebilirsiniz.


<%@ Page Language="vb" src="bilmemne.aspx.vb" Inherits="bilmemne"%>

muharrem_tac
11/03/2003, 22:37
Öncelikle hoş geldiniz.
Bu teknikle CodeBehind çalışacak mı?Artı dll'leri de upload etmemiz gerekiyor mu?

Cengiz HAN
13/03/2003, 11:16
Orjinal mesajı gönderen muharrem_tac
Öncelikle hoş geldiniz.
Bu teknikle CodeBehind çalışacak mı?Artı dll'leri de upload etmemiz gerekiyor mu?
sadece .vb ler yeterli oluyor