Best preview in IE5+
 

۱۳۸٩/٥/٢۳
₪ آدرس جدید
 
 
 


۱۳۸٧/٢/٢٧
₪ آدرس جدید
 

وبلاگ به اینجا منتقل شد


 
 


۱۳۸۳/٤/۱۱
₪ کنترل های سرور (۱)
 

کنترل های موجود در ASP.net به دو گروه تقسیم می شوند، کنترل های HTML و کنترل های Web .

خصوصیات مهم کنترل های سرور ASP.net

»  کنترل های سرور HTML. شما می توانید این کنترل ها را در سمت سرور تغییر دهید. پیش از ارسال فرم به کلاینت، ASP.net Engine آنها را برچسب های HTML تبدیل می کند. این کنترل ها در فضای نامی System.Web.UI.HtmlControls قرار دارند.

» کنترل های سرور وب ( به کنترل های وب یا کنترل های فرم وب ASP.net نیز معروف هستند)  این کنترل ها نسل جدید کنترل هایی هستند که توسط مایکروسافت ایجاد شده اند. این کنترل ها دارای خصوصیاتی تعبیه شده مفید و در فایل .aspx ، این کنترل ها معمولا به یک asp:prefix ارجاع می شوند(به عنوان مثال به asp:Button ، asp:Label یا asp:TextBox ) . علاوه بر کنترل های سرور که از نوع فرم می باشند( مانند برچسب ها، دکمه ها و منوهای پایین افتادنی ) تعداد زیادی کنترل با منظور خاص مانند کنترل های AdRotator و Calendar وجود دارند. کنترل های سرور وب در فضای نامی System.Web.UI.WebControls در دسترس قرار دارند.

»  کنترل های تایید اعتبار، این مجموعه کنترل ها امکاناتی را برای بررسی خودکار درستی ورودی های ویژه کاربر را فراهم می کنند.

» کنترل های سفارشی ، شما می توانید کنترل های سرور مخصوص خود را با توسعه یکی از کنترل های موجود یا گروهی از آنها ایجاد نموده و قابلیت های عملکرد اضافی را بدست آورید.

 

در یک نگاه در ASP.net به جای استفاده مستقیم از برچسب های HTML از کنترل های HTML استفاده می شود. این کار یبب می شود که براحتی بتوانیم خصیصه های کنترل ها را در زمان اجرا تغییر دهیم و به این ترتیب تسلط بیشتری در محتویات صفحه داشته باشیم و راحت تر با آن کار کنیم. فضای نامی مربوط به کنترل های سرور به طور اتوماتیک در دسترس تمام صفحات وب فرم می باشد.

مثالی از کنترل های HTML

به برچسب های زیر توجه کنید:

<html>
<body>
<font>Hello world!</font>
</body>
</html>

با افزودن خصیصه های runat="server"  و id  به برچسب <body> و <font> به سادگی می توانید این برچسب ها را به کنترل هایی از نوع HTMLGenericControls تبدیل کنید.

<html>
<body id="Body" runat="server">
<font id="hellotext" runat="server">Hello world!</font>
</body>
</html>

با افزودن برچسب runat="server"  ، هر تغییری یا رویدادی (Event)  که در این کنترل ها می بایست ایجاد شود در سرور رخ می دهد.

 

کنترل های وب

کنترل های Web بسیار ارزشمند می باشند. این کنترل ها با ارائه یک مدل برنامه نویسی رویدادگرا و قدرتمند، توانایی شما را به شکل قابل ملاحظه ای افزایش می دهند. تمام صفحات وب فرم بطور اتوماتیک به کنترل های وب دسترسی دارند و شما می توانید بصورت اعلان دستی و یا در Visual Studio بوسیله منو شناور سمت چپ آنرا اضافه کنید. توجه داشته باشید که این موضوع در مورد فیل های Code-Behind مربوط به این صفحات صدق نمیکند و شما باید فضای نامی کنترل های وب را به طور صریح وارد کنید.

using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

  البته اگر از Visual Studio استفاده می کنید این فضاها به طور خودکار به فایل Code-Behind اضافه می شود.

به این کنترل Label توجه کنید :

<asp:label id="mylabel" runat="server">Hi there!</asp:label>

همانطور که می بینید نوشته  Hi there! بین برچسب های باز و بسته label قرار گرفته و در صورت اجرا شدن تنها متن Hi there! را نمایش می دهد. کد کامل فایل بدین صورت است :

<%@ Page language="c#" %>
<HTML>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>

حال می خواهیم متن را تغییر دهیم :

<%@ Page language="c#" %>
<HTML>
<body >
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>
<script runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>

اگر این صفحه را اجرا کنید متن Hi .net  را مشاهده می کنید، زیرا در برچسب Script تعریف شده که در هنگام لود صفحه متن Hi .net را درون mylabel بریز. شما می توانید نام کد خود را به طور دلخواه انتخاب کنید اما اگر بخواهید در زمان اجرای صفحه کد اجرا شود باید در برچسب <body> این رویداد را اضافه کنید onload="scriptname"  و خصیصه runat=server را نیز اضافه کنید.( توجه: ما در بر چسب script زبان را مشخص نکرده ایم، البته لزومی ندارد چون در بالای صفحه مشخص شده و کامپایلر آنرا لحاظ خواهد کرد) :

<%@ Page language="c#" %>
<HTML>
<body onload="myowncode" runat=server>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>
<script runat=server>
private void myowncode(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>

اینک یک Button را اضافه می کنیم و می خواهیم اسکریپت در زمان کلیک کردن بر روی باتن اجرا شود. بدین صورت :

<%@ Page language="c#" %>

<HTML>
<body runat=server>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel" runat="server">Hi there!</asp:Label>
<asp:Button ID=mybutton Text="Go" OnClick="myowncode" Runat="server"></asp:Button>
</form>
<script runat=server>
private void myowncode(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>
</body>
</HTML>

رویداد اجرای myowncode را از برچسب body گرفته و به Button خود اضافه می کنیم. حال اگر صفحه را ران کنید می بینید که متن Hi there پس از کلیک روی Go به Hi .net تبدیل می شود. شما می توانید OnClick="myowncode" را از برچسب Button حذف و اسکریپ خود را بدین شکل تغییر دهید :

private void mybutton_Click(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}

 

توجه داشته باشید که اگر شما از Visual Studio استفاده کنید دیگر نوشتن کدهای اضافی لازم نیست و اکثر کارها به طور خودکار صورت میگیرد. حال اگر بخواهیم مثال بالا را با امکانات Visual Studio انجام دهیم : یک Label و یک Button را روی صفحه بکشید. Label را انتخاب کنید و از منو سمت راست کقدار Text را به صورت دلخواه و ID را به mylabel تغییر دهید، خصیصه های Button را نیز به طور دلخواه تغییر دهید. حال روی Button دابل کلیلک کنید تا وارد محیط کد نویسی ( Code-Behind مربوطه) شوید.اگر توجه کنید می بینید که همه چیز به طور خود کار تعریف شده و شما باید کد خود را بنویسید تا هنگام کلیک روی باتن اجرا شود. حال این کد را وارد کنید:

mylabel.Text = "Hi .net";

 به همین سادگی!  اگر می خواهید در هنگام Load شدن صفحه کد خاصی اجرا شود روی قسمت سفید صفحه دابل کلیک کنید تا وارد محیط کد نویسی شده و شما به رویداد Page_Load هدایت شده و می توانید کد مورد نظر خود را وارد کنید. 

یک مثال دیگر را بررسی می کنیم. یک TextBox با ID ( نام) txtbox1 و مقدار Text را خالی قرار دهید و یک Label با نام mylabel و مقدار Text را خالی کنید و یک Button با نام دلخواه و مقدار Text آنرا برابرSubmit  قرار دهید روی صفحه بکشید. روی Button دابل کلیک کنید تا وارد محیط کد نویسی شوید، سپس این کدها را وارد کنید :

if(txtbox1.Text=="")
{
mylabel.Text="Please Enter a something";
}
   else
{
mylabel.Text= "Do you submit " + txtbox1.Text+"?";
}

این کد می گوید اگر مقدار txtbox1 خالی بود Please Enter a something را درون mylabel بریز وگرنه  وقدار آنرا برابر با : Do you Submit + txtbox1.Text+? قرار بده. مثلا اگر شما Saad را وارد کنید و روی submit کلیک کنید این متن نمایش داده خواهد شد :

Do you submit Saad?

توجه داشته باشید که + در خروجی چاپ نخواهد شد و تنها به معنی پیوند آنهاست و متنی که متغیر نیست و شما بطور دلخواه وارد کد میکنید در بین دو سمی کالن قرار میگیرد.

به این چند مثال اکتفا نکنید و برای تمرین های بیشتر و پیشرفته تر و پیچیده تر می توانید به اینجا مراجعه کنید. در لاگ های  بعدی در مورد کنترل های مطرح چون Calendar ،  AdRotator و کنترل های تایید اعتبار ، خصوصیات IsPostBack و AutoPostBack و نیز کنترل های پرکاربرد مثل Repeater وDataList  صحبت خواهیم کرد تا در نهایت به کنترل های سفارشی برسیم


 
 


۱۳۸۳/٤/۱
₪ C#.net
 

نگاهی مختصر به زبان قدرتمند C# ، که جهت برنامه نویسی تحت وب و ویندوز طراحی و چند میلیارد دلار جهت طراحی آن خرج شده است :

کاملاً از صفر طراحی شده و بر پایه .NET framework است، سادگی استفاده از VB  و در عین حال قدرت C++ را داراست و شیءگرایی خود را از Java به ارث برده است.  C# ، سینتکس ( Syntax ) ی شبیه C و C++ دارد. قابلیت دستکاری حافظه در این زبان دیده نمی شود و مدیریت حافظه به صورت اتوماتیک صورت میگیرد. این یکی از مزایای مهم این زبان است، چون مدیریت حافظه یکی از مشکل ترین مسائل برنامه نویسی C++ است و بسیاری از مشکلاتی که در برنامه ها بوجود می آید به همین دلیل است و خوشبختانه در C# تمام امور مربوط به مدیریت حافظه توسط runtime صورت می گیرد.

یادگیری و فهم C# چندان سخت نیست، ازC++  بسیار ساده تر و از VB کمی سخت تراست. این زبان برای کسانی که قبلا با C یا C++ و یا Java کار میکرده اند بسیار شیرین است. به تعبیری C# برای این جهت طراحی شده که برنامه نویسانC++  با سرعت و بدون کاهش و قربانی شدن قدرت آن برنامه نویسی کنند.


 
 


 

      منو      

  هستم ؟  

  لینک و لوگو :

   ترافیک :     

    آرشیو     

 

   دات نت    

 
   Home | Archive | Contact | © 2004 All rights reserved for .net Dream blog , Saad Shamsaei