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 تشکر