PDA

View Full Version : درباره ایجاد یک کنترل سفارشی



saharv
پنج شنبه 17 دی 1383, 06:01 صبح
من میخواهم یک کنترل سفارشی در ای اس پی دات نت بسازم. در جایی خواندم که باید یک namespace برایش تعریف کنیم وسپس با استفاده از دستور build آن را کامپایل می کنید.(فرمان لازم برای کامپایل:
Vbc/t:library <sourcefile>/r:system.web.dll/r:system.dll)
اما وقتی آن را build میکنم، namespaceرا نمیشناسد. در ضمن این فرمان را هم نمی دانم کجا باید تایپ کنم، و یک مشکل دیگر هم این است که نمی دانم از چه فرمی استفاده کنم.webcustomcontol.vb با اطلاعاتی که من دارم جوردرنمی آید. بنابراین از codefile.vb استفاده کردم که نمی دانم درست است یا نه؟
خواهش می کنم یکی به من بیسواد وکلافه کمک کنه.

Behrouz_Rad
پنج شنبه 17 دی 1383, 08:01 صبح
سلام.
من که جایی ندیدم و نخوندم که باید Compile بشه. یه چیز جدید یاد گرفتم ولی به هر حال...

فایل هایی که برای ایجاد کنترل سفارشی به کار می روند دارای پسوند ascx هستند که شامل مجموعه ای از عناصر ASP.NET و تگ های HTML می باشند.
پس از اتمام ایجاد User Control، برای اضافه کردن آن به فرم وب دلخواه خود، باید ابتدا User Control را رجیستر کنید که اینکار با دایرکتیو Regsiter انجام می پذیرد.


<%@Register TagPrefix=”myControl ” TagName==”myName ” src==”myFile.ascx ” %%>

حال برای استفاده از User Control در فرم وب خود، همانند دیگر عناصر به طریقه زیر عمل کنید:


<myControl:myName ...runat=”server ”>

:wise1:

saharv
شنبه 19 دی 1383, 14:47 عصر
سلام
از راهنمایی تان ممنون.من هم همه یوزر کنترلهایی که دیده ام با پسوند .ascx بوده است ولی می خواهم بدانم webcustomcontrol.vb به چه دردی میخورد؟ در ضمن مشکل namespace هم به قوت خود باقی است.

Behrouz_Rad
شنبه 19 دی 1383, 16:59 عصر
شما داری از روش Code Behind استفاده می کنی.
چون داری پروژتون رو با VS.NET می نویسی.
کدهای سمت Server در فایل های با پسوند VB‌و فایل های سمت کلاینت در فایلهای با پسوند aspx قرار می گیرند.
اگر پروژتون رو با Web Matrix بنویسید، روش InLine‌ میشه که تمام کدهای سمت سرور و کلاینت در فایل aspx قرار می گیرند.


مشکل namespace هم به قوت خود باقی است.
namespace رو در کجا استفاده می کنید؟
:wise1:

saharv
یک شنبه 20 دی 1383, 18:26 عصر
من namespace رو بلافاصله بعد از import تعریف می کنم. تمام ویژگی های کنترل هم درون namespace نوشته می شوند.
دو تا سوال دیگر هم داشتم:
- آیا میشود در یک پروژه هم از روش Code Behind و هم ازWeb Matrix استفاده کرد و اصلا از کجا بدانم از کدام روش استفاده می کنم؟
- فایل های htc . چی هستند؟

البته هزار تا سوال دیگر هم داشتم، اگر کسانی مثل شما جواب سوالات مرا بدهند به تدریج آنها را
می پرسم. : :گیج: :oops: :thnx:

Behrouz_Rad
یک شنبه 20 دی 1383, 21:37 عصر
نحوه تعریف namespace (مثال):


<%@ import Namespace="System.Data" %>



آیا میشود در یک پروژه هم از روش Code Behind و هم ازWeb Matrix استفاده کرد و اصلا از کجا بدانم از کدام روش استفاده می کنم؟
خیر، اگر از VS.NET استفاده می کنید، روش Code Behind است.
در صورتی که تمام کدهای شما (چه Server Side و چه Client Side) در فایل aspx قرار داده شوند، روش inline می شود. (برنامه Web Matrix بیشتر با روش inline سر و کار دارد)


فایل های htc . چی هستند؟
فایل های با پسوند htc، فایل هایی از نوع HTML هستند که شامل اسکریپت ها و یک سری تعاریف برای ایجاد Component های مختلف هستند.

موفق باشید.
:wise1:

Vahid_Nasiri
دوشنبه 21 دی 1383, 07:35 صبح
من میخواهم یک کنترل سفارشی در ای اس پی دات نت بسازم. در جایی خواندم که باید یک namespace برایش تعریف کنیم وسپس با استفاده از دستور build آن را کامپایل می کنید.(فرمان لازم برای کامپایل:
Vbc/t:library <sourcefile>/r:system.web.dll/r:system.dll)
اما وقتی آن را build میکنم، namespaceرا نمیشناسد. در ضمن این فرمان را هم نمی دانم کجا باید تایپ کنم، و یک مشکل دیگر هم این است که نمی دانم از چه فرمی استفاده کنم.webcustomcontol.vb با اطلاعاتی که من دارم جوردرنمی آید. بنابراین از codefile.vb استفاده کردم که نمی دانم درست است یا نه؟
خواهش می کنم یکی به من بیسواد وکلافه کمک کنه.

دو نوع کنترل در ASP.NET قابل طراحی است:
یوزر کنترل که مورد خاصی ندارد.

مورد دوم Custom Web Control است:

نحوه ایجاد:
http://www.codeproject.com/aspnet/textboxwithvalidator.asp
نحوه استفاده:
http://www.csharphelp.com/archives/archive247.html

saharv
دوشنبه 21 دی 1383, 09:11 صبح
ممنون دوستان :thnx: