ASP.NET FAQ - ListBox

Find answers for the most frequently asked questions
Expand All Collapse All

The ListBox Web server control prevents us from assigning the style property to each item in the ListBox. This bug is confirmed by Microsoft Knowledge Base Article – 309338

So, instead use a HTML ListBox with runat=server


<SELECT id='listbox1' size='14' runat='server' >
</SELECT>

VB.NET


Dim myconnection As SqlConnection
Dim myda As SqlDataAdapter
Dim ds As DataSet
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	myconnection = New SqlConnection('Server=localhost;uid=sa;password=;database=northwind;')
	myda = New SqlDataAdapter('Select * from Products ', myconnection)
	ds = New DataSet()
	myda.Fill(ds, 'AllTables')
	dim i as Integer
	For i = 0 To ds.Tables(0).Rows.Count - 1
		listBox1.Items.Add(New ListItem(ds.Tables(0).Rows(i)('UnitPrice'), ds.Tables(0).Rows(i)('ProductID')))
		If ds.Tables(0).Rows(i)('UnitPrice') <= 25 Then
			listBox1.Items(i).Attributes.Add('style', 'color:red')
		Else
			listBox1.Items(i).Attributes.Add('style', 'color:green')
		End If
	Next
End Sub

C#


SqlConnection mycn;
SqlDataAdapter myda;
DataSet ds;
String strConn;
private void Page_Load(object sender, System.EventArgs e)
{
	if (!IsPostBack)
	{
		strConn='Data Source=localhost;uid=sa;pwd=;Initial Catalog=northwind';
		mycn = new SqlConnection(strConn);
		myda = new SqlDataAdapter ('Select * FROM Products ', mycn);
		ds = new DataSet();
		myda.Fill (ds,'Table');
				
		for(int i = 0 ;i < ds.Tables[0].Rows.Count - 1;i++)
		{
			listBox1.Items.Add (new ListItem(ds.Tables[0].Rows[i]['UnitPrice'].ToString(),
			ds.Tables[0].Rows[i]['ProductID'].ToString()));
			if(Convert.ToDouble(ds.Tables[0].Rows[i]['UnitPrice'].ToString()) <= 25 )
			{
				listBox1.Items[i].Attributes.Add('style', 'color:red');
			}
			else
			{
				listBox1.Items[i].Attributes.Add('style', 'color:green');
			}
		}
	}
}
Permalink

VB.NET


Dim lstitem As ListItem = ListBox1.Items.FindByValue('<valuecheckedfor>')
If Not lstitem Is Nothing Then
       Response.Write('Item Exists')
Else
       Response.Write('Item Does not exist')
End If

C#


ListItem lstitem    = ListBox1.Items.FindByValue('<valuecheckedfor>');
if (  lstitem !=null)
{
	Response.Write ('Does  exist');
}
else
{
	Response.Write ('Does not exist');
}

You can also use FindByText instead of FindByValue.

Permalink

<p>
<asp:ListBox id='ListBox1' runat='server'></asp:ListBox>
</p>
<p>
<asp:Button id='buttonAdd'  runat='server' Text='Add'></asp:Button>
</p>

In button Click Event

VB.NET


ListBox1.Items.Add(DateTime.Now.ToString('MMM dd, yyyy') + ' ' + DateTime.Now.ToString('t'))
Dim scrollScript As String
scrollScript &= '<script language=’javascript’>'
scrollScript &= 'document.forms[0].ListBox1.selectedIndex ' & _
          ' = document.forms[0].ListBox1.options.length-1;'
scrollScript &= '<' & '/' & 'script>'
Page.RegisterStartupScript('', scrollScript)

C#


ListBox1.Items.Add(DateTime.Now.ToString('MMM dd, yyyy') + ' ' + DateTime.Now.ToString('t'));
string scrollScript='' ;
scrollScript += '<script language=’javascript’>';
scrollScript += 'document.forms[0].ListBox1.selectedIndex  = document.forms[0].ListBox1.options.length-1;';
scrollScript += '<' + '/' + 'script>';
Page.RegisterStartupScript('', scrollScript);
Permalink

<asp:listbox id='ListBox1' runat='server' selectionmode='Multiple'>
	<asp:listitem value='Red'>Red</asp:listitem>
	<asp:listitem value='Blue'>Blue</asp:listitem>
	<asp:listitem value='Green'>Green</asp:listitem>
	<asp:listitem value='White'>White</asp:listitem>
</asp:listbox>
<asp:radiobutton id='RadioButton1' runat='server' groupname='selrb' text='Select All' autopostback='True'></asp:radiobutton>

VB.NET


Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
	        Dim lstItem As ListItem
	        For Each lstItem In ListBox1.Items
		            lstItem.Selected = True
	        Next
    End Sub

C#


foreach (ListItem lstItem in ListBox1.Items)
{
	lstItem.Selected = true; 
}
Permalink

<asp:ListBox id='ListBox1' runat='server' AutoPostBack='True'></asp:ListBox>

VB.NET


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	’Put user code to initialize the page here
	If Not IsPostBack Then
		Dim arrList As New ArrayList
		arrList.Add('One')
		arrList.Add('Two')
		arrList.Add('Three')
		arrList.Add('Four')
		ListBox1.DataSource = arrList
		ListBox1.DataBind()
	End If
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
	Response.Write(ListBox1.SelectedItem.Text)
End Sub

C#


private void Page_Load(object sender, System.EventArgs e)
{
	// Put user code to initialize the page here
	if (!Page.IsPostBack )
	{
		ArrayList arrList = new ArrayList();
		arrList.Add('One');
		arrList.Add('Two');
		arrList.Add('Three');
		arrList.Add('Four');
		ListBox1.DataSource = arrList;
		ListBox1.DataBind();
	}
}

private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
	Response.Write (ListBox1.SelectedItem.Text   );
}
Permalink

<asp:ListBox id='ListBox1' runat='server'>
	<asp:ListItem Value='Faqs'>Faqs</asp:ListItem>
	<asp:ListItem Value='Tips'>Tips</asp:ListItem>
	<asp:ListItem Value='Tricks'>Tricks</asp:ListItem>
	<asp:ListItem Value='Advanced'>Advanced</asp:ListItem>
</asp:ListBox>
<asp:Button id='btnToRight' style='Z-INDEX: 101; LEFT: 112px; POSITION: absolute; TOP: 24px'
	runat='server' Text='>'></asp:Button>
<asp:ListBox id='ListBox2' style='Z-INDEX: 102; LEFT: 152px; POSITION: absolute; TOP: 16px' runat='server'></asp:ListBox>
<asp:RequiredFieldValidator id='RequiredFieldValidator1' style='Z-INDEX: 103; LEFT: 24px; POSITION: absolute; TOP: 120px'
	runat='server' ErrorMessage='Please Select Item' ControlToValidate='ListBox1'></asp:RequiredFieldValidator>

VB.NET


Private Sub btnToRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToRight.Click
	If ListBox1.Items.Count = 0 Then
		Response.Write('No item to move')
	End If
	Dim itemremoved As String = ListBox1.SelectedItem.Text
	ListBox1.Items.Remove(itemremoved)
	ListBox2.Items.Add(itemremoved)
End Sub

C#


private void btnToRight_Click(object sender, System.EventArgs e)
{
	if (ListBox1.Items.Count == 0 ) 
	{
		Response.Write('No item to move');
	}
string itemremoved    = ListBox1.SelectedItem.Text;
ListBox1.Items.Remove(itemremoved);
ListBox2.Items.Add(itemremoved);
}
Permalink

VB.NET


Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim dr As SqlDataReader
cn = New SqlConnection('Server=localhost;uid=sa;database=northwind;pwd=')
cmd = New SqlCommand('select * from products;select * from categories', cn)
cn.Open()
dr = cmd.ExecuteReader()
ListBox1.DataSource = dr
ListBox1.DataTextField = 'productname'
ListBox1.DataBind()
dr.NextResult()
ListBox2.DataSource = dr
ListBox2.DataTextField = 'categoryname'
ListBox2.DataBind()

C#


SqlConnection cn;
SqlCommand cmd;
SqlDataReader dr;
cn = new SqlConnection('Server=localhost;uid=sa;database=northwind;pwd=');
cmd= new SqlCommand ('select * from products;select * from categories', cn);
cn.Open();
dr = cmd.ExecuteReader();
ListBox1.DataSource = dr; 
ListBox1.DataTextField = 'productname'; 
ListBox1.DataBind(); 
dr.NextResult();
ListBox2.DataSource = dr; 
ListBox2.DataTextField = 'categoryname'; 
ListBox2.DataBind(); 
Permalink

Share with

Couldn't find the FAQs you're looking for?

Please submit your question and answer.