Highlight کردن Item های DropDownList در ASP.NET

چهارشنبه 7 مرداد 1394

در این مقاله می خواهیم بررسی کنیم که چگونه یک DropDownList به صورت داینامیک اطلاعات را از جدول بانک اطلاعاتی دریافت کند.

Highlight کردن Item های DropDownList در ASP.NET

ساخت پایگاه داده:

ما از جدول و پروسیجر(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 می باشند.

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید