Highlight کردن Item های DropDownList در ASP.NET
چهارشنبه 7 مرداد 1394در این مقاله می خواهیم بررسی کنیم که چگونه یک DropDownList به صورت داینامیک اطلاعات را از جدول بانک اطلاعاتی دریافت کند.
ساخت پایگاه داده:
ما از جدول و پروسیجر(Procedure) زیر برای مثال خود استفاده کردیم.
جدول را به صورتی که در زیر آمده است، می سازیم.
برای وارد کردن مقدار درون جدول از کدهای زیر استفاده می کنیم:
insert Mas_Department values(1, N'آی تی', 1) insert Mas_Department values(2, N'آی تی', 1) insert Mas_Department values(3, N'حسابداری', 1) insert Mas_Department values(7, N'فنی مهندسی', 0) insert Mas_Department values(4, N'فروش', 1) insert Mas_Department values(5, N'پشتیبانی', 0)
وجود "N" برای این است که بتوانیم مقادیر فارسی درون جدول وارد کنیم.
برای گرفتن اطلاعات جدول Mas_Department یک پروسیجر به نام USP_Select_Mas_Department ایجاد کرده ایم. شما می توانید از نام دلخواه استفاده کنید.
Create procedure [dbo].[USP_Select_Mas_Department] AS Begin Select D.DeptId, D.DeptName as Department, D.Status From Mas_Department D END
ساخت پروژه:
Visual Studio را باز کنید. برای ساخت یک پروژه جدید از منوی File گزینه New Project را انتخاب کنید. زبان برنامه نویسی را #C انتخاب کرده و در نهایت گزینه ASP.NET Empty Web Application را انتخاب کنید.
تعیین نام پروژه و محل ذخیره سازی آن را فراموش نکنید.
همانطور که در زیر نشان داده شده است در فایل Web.Config یک Connection String ایجاد کنید.
<connectionStrings> <add name="conStr" connectionString="Password=123; User ID=sa; Database=DB_Jai; Data Source=." providerName="System.Data.SqlClient"/> </connectionStrings>
در مرحله بعد، روی solution Explorer راست کلیک کرده و یک Web Form به پروژه اضافه کنید.
فایل aspx.
صفحه aspx. خود را مانند زیر بسازید:
<form id="form1" runat="server"> <div align="center"> <fieldset style="width: 30%; direction: rtl;"> <legend>Highlight DropDownList Item Color</legend> <table style="width: 25%;"> <tr> <td> Department : </td> <td> <asp:DropDownList ID="ddlDepartment" runat="server"> </asp:DropDownList> </td> </tr> </table> </fieldset> <br /> <a href="http://barnamenevisan.org">مرجع تخصصی برنامه نویسان</a> </div> </form>
code behind
فضای نام (name space) های زیر را هم به پروژه اضافه کنید:
using System.Data; using System.Data.SqlClient; using System.Configuration;
Connection String
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conStr"].ConnectionString);
توابعی اطلاعات را از جدول گرفته، DropDownList را پر می کند و گزینه های دارای مقدار 0 را به صورت highlight در می آورد:
#region User Defined Methods // To dynamically Bind/Fill DropDownList from Sql Server Database table, and highlight the color for flag 0 records. protected void ddlBindDepartments() { SqlDataAdapter adp = new SqlDataAdapter("USP_Select_Mas_Department", con); adp.SelectCommand.CommandType = CommandType.StoredProcedure; DataSet ds = new DataSet(); adp.Fill(ds); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { ddlDepartment.DataSource = ds; ddlDepartment.DataValueField = "DeptId"; ddlDepartment.DataTextField = "Department"; ddlDepartment.DataBind(); } DataView dv = ds.Tables[0].DefaultView; dv.RowFilter = "Status='" + false + "'"; foreach(DataRowView dr in dv) { foreach(ListItem item in ddlDepartment.Items) { if (dr["DeptId"].ToString() == item.Value.ToString()) { item.Attributes.Add("style", "background-color:#3399FF;color:white;font-weight:bold;"); } } } }
صفحه Event Handler
#region Page Event Handlers // Page Load protected void Page_Load(object sender, EventArgs e) { ddlDepartment.SelectedIndex = -1; if (!Page.IsPostBack) { ddlBindDepartments(); } } #endregion
خروجی:
در خروجی مقادیر BPO و Field Technician که دارای وضعیت 0 هستند، به صورت Highlight می باشند.
- ASP.net
- 2k بازدید
- 2 تشکر