ASP.Net Custom Server Control Property Collection

by MDP 16. October 2011 11:56

بیشتر شرکت ها معمولا برای کار هاشون یک سری کنترل طراحی میکنن که سرعت کارشون رو افزایش بده.

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

  • Grid
  • Search Textbox
  • ...
برای این کار شما فقط باید داخل یک کلاس از کلاس والدی مثل WebControl ارث بری کنید.
 
برای مثال شما برای کارتون قراره یک TextBox ایجاد کنید که با تایپ درونش قبل از LostFocus شدن از تکراری نبودن اطلاعات  درونش اطمینان حاصل کنید.
به طور پیش فرش میشه این کار رو با چند خط کد جاوااسکریپت و یک سرویس ساده پیاده سازی کرد.
ولی شما به این کنترل احتیاج دارید و استفاده زیادی ازش می کنید.ژس منطقی نیست که هر دفعه این کد ها نوشته بشه.
شما می تونید به راحتی این کار رو انجام بدید.با یم سرچ ساده به اطلاعات کامل و خوبی می رسید.
 
احتمالا تا حالا به Property های داخل یک کنترل برخوردید که داخل بدنه کنترل نوشته میشن.
مثل این :
 
<asp:BulletedList runat="server" ID="bltList">
        <asp:ListItem Enabled="true" Selected="False" Text="text1" Value="text1value" />
        <asp:ListItem Enabled="true" Selected="False" Text="text2" Value="text2value" />
        <asp:ListItem Enabled="true" Selected="False" Text="text3" Value="text3value" />
 </asp:BulletedList>
 
برای ساختن کنترل هایی که بتونن به عنوان پراپرتی از شما اطلاعات بگیرن و زمان رندر از اونا استفاده کنن روشی وجود داره.
در مثال بالا BulletedList یک کنترل ASP.Net هست که مقادیر خودش رو داره و در کلاس BulletedList وجود دارند.
نکته اصلی اینجاست که ListItem ها هم کلاسی هست که مشخصات و پراپرتی های خودش رو داره.
ولی برای اینکه داخل BulletedList قابل شناسایی باشه شما باید یک پراپرتی از نوع اون کلاس مورد نظر ( در اینجا ListItem( و به صورت List تعریف کنید.
برای اینکه به کنترل بفهمونید که این لیست حاویه اطلاعات مختصل این کنترل هست و باید از توی Designer خونده بشن باید Attribute زیر رو هم به پراپرتی بدید :
 
[PersistenceMode(PersistenceMode.InnerProperty)]
public List<searchTextBoxEvent> SearchTextBoxEvents { get; set; }
 
 
برای اینکه کلاس والد بفهمه که باید پراپرتی های داخلی خودش رو هم چک کنه باید به کلاس والد Attribute زیر رو هم داشته باشه :
 
 
[ParseChildren(true)]
public class SearchTextbox : WebControl
{
 //...
}

Tags:

.Net | ASP.Net

blog comments powered by Disqus

My Groups

Poll

از چه پلتفرمی برای توسعه استفاده می کنید



Show Results

Month List