Introduction:

Suppose if Department Name is “HRM” then it got disable.
In this article, I have explained how to dynamically Fill Dropdown List from SQL
Server Database table and how to disable or making some items non-selectable based on condition.
Server Database table and how to disable or making some items non-selectable based on condition.
Create a table in the SQL server database with the
columns names and data type as shown below and name it "Dept_Master"
Columns
Name
|
Data
Type
|
Dept_Id_Pk
|
Int(Primary Key. Auto
Increment)
|
Dept_Name
|
varchar(100)
|
And insert some department
names in this table.
Now In the Web.config file create
the connection string as:
<connectionStrings>
<add name="Empcon" connectionString="Data
Source=localhost;Initial Catalog=test;Integrated Security=True"/>
</connectionStrings>
- In the default. aspx page place a DropDownList controls as:
<fieldset style="width: 270px;">
<legend>Fill DropDownList and Disable Items</legend>
<asp:DropDownList ID="ddlDepartments" runat="server">
</asp:DropDownList>
</fieldset>
Asp.Net C# Code to Fill DropDownList and Disable specified items
Include required namespaces
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
Then write the code as:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
FillDropDownListAndDisableItems();
}
}
protected void FillDropDownListAndDisableItems()
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection();
SqlDataReader dr = null;
try
{
con = new SqlConnection(ConfigurationManager.ConnectionStrings["Empcon"].ConnectionString);
cmd = new SqlCommand("Select * from Dept_Table", con);
if (con.State==ConnectionState.Closed)
{
con.Open();
}
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
ddlDepartments.DataSource = dr;
ddlDepartments.DataTextField = "Dept_Name";
ddlDepartments.DataValueField = "Dept_Id_pk";
ddlDepartments.DataBind();
ddlDepartments.Items.Insert(0, new ListItem("--Select
Department--", "-1"));
//Disable dropdownlist items based on condition
foreach (ListItem item in ddlDepartments.Items)
{
//Check by item value
//if (item.Value == "2" || item.Value == "4")
//OR Check by item text
if (item.Text == "HRM" || item.Text == "Test")
{
item.Attributes.Add("disabled", "disabled");
}
}
}
else
{
ddlDepartments.Items.Insert(0, "--No Departments--");
}
}
catch (Exception ex)
{
Response.Write(“Error
occured:" + ex.Message.ToString());
}
finally
{
con.Close();
cmd.Dispose();
dr.Dispose();
}
}
Asp.Net VB Code to Fill/Bind/populate
DropDownList and Disable specified items
Include required
namespaces
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Write the code as:
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
FillDropDownListAndDisableItems()
End If
End Sub
Protected Sub FillDropDownListAndDisableItems()
Dim cmd As New SqlCommand()
Dim con As New SqlConnection()
Dim dr As SqlDataReader = Nothing
Try
con = New SqlConnection(ConfigurationManager.ConnectionStrings("EmpCon").ConnectionString)
cmd = New SqlCommand("Select * from Dept_Table", con)
If con.State = ConnectionState.Closed Then
con.Open()
End If
dr = cmd.ExecuteReader()
If dr.HasRows Then
ddlDepartments.DataSource = dr
ddlDepartments.DataTextField = "Dept_Name"
ddlDepartments.DataValueField = "Dept_Id_pk"
ddlDepartments.DataBind()
ddlDepartments.Items.Insert(0, New ListItem("--Select
Department--", "-1"))
'Disable dropdownlist items based on condition
For Each item As ListItem In ddlDepartments.Items
'Check by item value
'if (item.Value == "2" || item.Value == "4")
'OR Check by item text
If item.Text = "HRM" OrElse item.Text = "Testing" Then
item.Attributes.Add("disabled", "disabled")
End If
Next
Else
ddlDepartments.Items.Insert(0, "--No Departments--")
End If
Catch ex As Exception
Response.Write("Error
occured:" & ex.Message.ToString())
Finally
con.Close()
cmd.Dispose()
dr.Dispose()
End Try
End Sub
0 comments:
Post a Comment