PDA

View Full Version : آموزش: اعمال css به کنترل بر اساس شرطی خاص



corona
جمعه 09 بهمن 1388, 11:08 صبح
سلام به همگی. مطلب مفیدی پیدا کردم از تو نت. لااقل برای اودم که آموزنده بود . میزارم اینجا شاید برا بقبه هم مفید باشه .

فرض کنید یک دیتالیست تعریف کردیم که حالا از یک دیتاسورسی یک سری فیلد رو به عناصری که توی Template اش تعریف میکنیم بایند میکنیم . حالا مثلا دوست داریم رکوردهایی که مثلا کد پستیشون با یک عدد خاص شروع میشه رو از بقیه متمایز کنیم و یک Css متفاوت به اون اعمال کنیم. برای این کار می تونیم از دایرکتیو دیتابایندینگ استفاده کنیم و تابع مورد نظر خودمون رو درون این دایرکتیو صدا بزنیم .رنگش رو قرمز کردم




<asp:DataList ID="DataList1" runat="server">

<ItemTemplate>

<asp:Panel ID="AddressPanel" runat="server" CssClass='<%#GetCssForPostalCode(Container.DataItem)%>'>

<asp:Label ID="Address" runat="server" Text='<%# Eval("address") %>' /><br />

<asp:Label ID="City" runat="server" Text='<%# Eval("city") %>' /><br />

<asp:Label ID="PostalCode" runat="server" Text='<%# Eval("postalcode") %>' />

</asp:Panel>

</ItemTemplate>

</asp:DataList>

اینم قسمت CodeBehind و تایع مورد نظرمون.



protected string GetCssForPostalCode(object dataItem)
{
DataRowView row = dataItem as DataRowView;
if (row["postalcode"].ToString().StartsWith("902")) return "highlight-address";
return "normal-address";
}
امیدوارم مفید واقع بشه .
منبع:
http://devlicious.com/blogs/christopher_bennage/archive/2006/09/27/Data_2D00_Binding-to-Methods-in-ASP.NET.aspx