ASP.NET Tutorial/ASP.net Controls/ListBox
Содержание
asp:ListBox OnSelectedIndexChanged event and AutoPostBack (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <%@ Import Namespace="System.Drawing" %> <script runat="server">
sub NameHandler(Sender as Object, e as EventArgs) lblMessage.Text = tbName.Text & ", select a color: " end sub sub ListHandler(Sender as Object, e as EventArgs) lbColor.BackColor = Color.FromName(Sender.SelectedItem.Text) end sub
</script> <html><body>
<form runat="server"> <asp:Textbox id="tbName" runat="server" OnTextChanged="NameHandler" AutoPostBack="true" /> <asp:Label id="lblMessage" runat="server" Text="Select a color: " /> <asp:Listbox id="lbColor" runat="server" OnSelectedIndexChanged="ListHandler" AutoPostBack="true" > <asp:Listitem>Red</asp:Listitem> <asp:Listitem>blue</asp:Listitem> <asp:Listitem>green</asp:Listitem> <asp:Listitem>white</asp:Listitem> </asp:Listbox> </form>
</body></html></source>
Bind array data to asp:ListBox (VB.net)
<source lang="csharp">
<script runat="server">
dim strName as String = "A" dim myArray() as String = {"Hello", "World"} dim myString as String = "AA" sub Page_Load(Sender as Object, e as EventArgs) Page.DataBind() end sub
</script> <html>
<form runat="server"> My Name is <%# strName %> <asp:Listbox datasource="<%# myArray %>" runat="server" /> <asp:Textbox text="<%# myString.ToString %>" runat="server" /> </form>
</html></source>
Bind asp:Label with asp:ListBox (VB.net)
<source lang="csharp">
<script language="VB" runat="server">
sub Index_Changed(Sender as Object, e as EventArgs) DataBind() end sub
</script> <html><body>
<form runat="server"> <asp:Listbox runat="server" id="lbColors" AutoPostBack=true rows="1" SelectionMode="Single" OnSelectedIndexChanged="Index_Changed" > <asp:Listitem value="1">Red</asp:Listitem> <asp:Listitem value=" 2">Blue</asp:Listitem> <asp:Listitem value=" 3">Green</asp:Listitem> <asp:Listitem value=" 4">Yellow</asp:Listitem> </asp:Listbox> <asp:Label id="lblMessage" runat="server" Text="<%# lbColors.selectedItem.Text %>" /> </form>
</body></html></source>
Fill value to asp:ListBox in asp:RadioButtonList selection changed action (VB.net)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
sub ChangeNames(Sender as Object, e as EventArgs) if rlSex.SelectedIndex = 0 then "female lbNames.Items(0).Text = "A" lbNames.Items(1).Text = "B" lbNames.Items(2).Text = "C" lbNames.Items(3).Text = "D" else "male lbNames.Items(0).Text = "E" lbNames.Items(1).Text = "F" lbNames.Items(2).Text = "G" lbNames.Items(3).Text = "H" end if end sub sub DisplayMessage(Sender as Object, e as EventArgs) lblMessage.Text = Sender.SelectedItem.Text & _ " is a wonderful name!" end sub
</script> <html><body>
<form runat="server"> <asp:Label id="lblMessage" runat="server"/> Choose the sex of your baby: <asp:RadioButtonList id="rlSex" runat="server" OnSelectedIndexChanged="ChangeNames" AutoPostBack="true" > <asp:ListItem>Female</asp:ListItem> <asp:ListItem>Male</asp:ListItem> </asp:RadioButtonList> Possible names:
<asp:ListBox id="lbNames" runat="server" OnSelectedIndexChanged="DisplayMessage" AutoPostBack="true" > <asp:ListItem></asp:ListItem> <asp:ListItem></asp:ListItem> <asp:ListItem></asp:ListItem> <asp:ListItem></asp:ListItem> </asp:ListBox> </form>
</body></html></source>
Property tester
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="PropertyTester" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">
<title>Server Control Property Tester</title>
</head> <body>
<form id="form1" runat="server">
Server Control Property Tester
<asp:Panel ID="panChange" runat="server" GroupingText="Controls that will change"> <asp:Label id="labHere" runat="server">Here is a label</asp:Label> <asp:TextBox id="txtBox" runat="server">Sample Text</asp:TextBox> <asp:Label id="labAnother" runat="server">This is yet another label</asp:Label> <asp:Button id="btnSample" runat="server" Text="Sample Button"></asp:Button> </asp:Panel> <asp:Panel ID="panProperties" runat="server" GroupingText="When you choose these display properties">
<asp:CheckBox id="chkVisible" runat="server" Text="Visible" AutoPostBack="True" Checked="True" OnCheckedChanged="chkVisible_CheckedChanged"></asp:CheckBox>
<asp:CheckBox id="chkEnabled" runat="server" Text="Enabled" AutoPostBack="True" Checked="True" OnCheckedChanged="chkEnabled_CheckedChanged"></asp:CheckBox>
Text Color: <asp:DropDownList id="drpTextColor" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpTextColor_SelectedIndexChanged"> <asp:ListItem Value="0" Selected="True">Choose a color</asp:ListItem> <asp:ListItem Value="Black">Black</asp:ListItem> <asp:ListItem Value="Blue">Blue</asp:ListItem> <asp:ListItem Value="CadetBlue">Cadet Blue</asp:ListItem> <asp:ListItem Value="Firebrick">Firebrick</asp:ListItem> <asp:ListItem Value="Gainsboro">Gainsboro</asp:ListItem> <asp:ListItem Value="Green">Green</asp:ListItem> <asp:ListItem Value="Gold">Gold</asp:ListItem> <asp:ListItem Value="LimeGreen">Lime Green</asp:ListItem> <asp:ListItem Value="Red">Red</asp:ListItem> <asp:ListItem Value="SaddleBrown">Saddle Brown</asp:ListItem> <asp:ListItem Value="Violet">Violet</asp:ListItem> <asp:ListItem Value="Yellow">Yellow</asp:ListItem> </asp:DropDownList>
Background Color: <asp:DropDownList id="drpBackgroundColor" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpBackgroundColor_SelectedIndexChanged"> <asp:ListItem Value="0" Selected="True">Choose a color</asp:ListItem> <asp:ListItem Value="Black">Black</asp:ListItem> <asp:ListItem Value="Blue">Blue</asp:ListItem> <asp:ListItem Value="CadetBlue">Cadet Blue</asp:ListItem> <asp:ListItem Value="Firebrick">Firebrick</asp:ListItem> <asp:ListItem Value="Gainsboro">Gainsboro</asp:ListItem> <asp:ListItem Value="Green">Green</asp:ListItem> <asp:ListItem Value="Gold">Gold</asp:ListItem> <asp:ListItem Value="LimeGreen">Lime Green</asp:ListItem> <asp:ListItem Value="Red">Red</asp:ListItem> <asp:ListItem Value="SaddleBrown">Saddle Brown</asp:ListItem> <asp:ListItem Value="Violet">Violet</asp:ListItem> <asp:ListItem Value="Yellow">Yellow</asp:ListItem> </asp:DropDownList>
Font: <asp:DropDownList id="drpFont" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpFont_SelectedIndexChanged"> <asp:ListItem Value="Choose a font">Choose a font</asp:ListItem> <asp:ListItem Value="Arial">Arial</asp:ListItem> <asp:ListItem Value="Times New Roman">Times New Roman</asp:ListItem> <asp:ListItem Value="Tahoma">Tahoma</asp:ListItem> </asp:DropDownList>
Font Size: <asp:DropDownList id="drpFontSize" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpFontSize_SelectedIndexChanged"> <asp:ListItem Value="Choose a font size" Selected="True">Choose a font size</asp:ListItem> <asp:ListItem Value="10">10pt</asp:ListItem> <asp:ListItem Value="14">14pt</asp:ListItem> <asp:ListItem Value="16">16pt</asp:ListItem> </asp:DropDownList>
Border Style: <asp:DropDownList id="drpBorderStyle" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpBorderStyle_SelectedIndexChanged"> <asp:ListItem Value="Choose a border style" Selected="True">Choose a border style</asp:ListItem> <asp:ListItem Value="dashed">dashed</asp:ListItem> <asp:ListItem Value="inset">inset</asp:ListItem> <asp:ListItem Value="none">none</asp:ListItem> <asp:ListItem Value="outset">outset</asp:ListItem> <asp:ListItem Value="solid">solid</asp:ListItem> </asp:DropDownList>
Border Width: <asp:DropDownList id="drpBorderWidth" runat="server" AutoPostBack="True" OnSelectedIndexChanged="drpBorderWidth_SelectedIndexChanged"> <asp:ListItem Value="Select a border width" Selected="True">Select a border width</asp:ListItem> <asp:ListItem Value="1">1 px</asp:ListItem> <asp:ListItem Value="2">2 px</asp:ListItem> <asp:ListItem Value="3">3 px</asp:ListItem> </asp:DropDownList> </asp:Panel>
</form>
</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; public partial class PropertyTester : System.Web.UI.Page {
private Style _styleToApply = new Style(); protected void chkVisible_CheckedChanged(object sender, EventArgs e) { if (chkVisible.Checked) ChangeVisible(true); else ChangeVisible(false); } protected void chkEnabled_CheckedChanged(object sender, EventArgs e) { if (chkEnabled.Checked) ChangeEnabled(true); else ChangeEnabled(false); } protected void drpTextColor_SelectedIndexChanged(object sender, EventArgs e) { if (drpTextColor.SelectedIndex > 0) { _styleToApply.ForeColor = Color.FromName(drpTextColor.SelectedValue); ApplyNewStyle(_styleToApply); } } protected void drpBackgroundColor_SelectedIndexChanged(object sender, EventArgs e) { if (drpBackgroundColor.SelectedIndex > 0) { _styleToApply.BackColor = Color.FromName(drpBackgroundColor.SelectedValue); ApplyNewStyle(_styleToApply); } } protected void drpFont_SelectedIndexChanged(object sender, EventArgs e) { if (drpFont.SelectedIndex > 0) { _styleToApply.Font.Name = drpFont.SelectedValue; ApplyNewStyle(_styleToApply); } } protected void drpFontSize_SelectedIndexChanged(object sender, EventArgs e) { if (drpFontSize.SelectedIndex > 0) { int fontSize = Convert.ToInt32(drpFontSize.SelectedValue); _styleToApply.Font.Size = FontUnit.Point(fontSize); ApplyNewStyle(_styleToApply); } } protected void drpBorderStyle_SelectedIndexChanged(object sender, EventArgs e) { if (drpBorderStyle.SelectedIndex > 0) { string currBorderStyle = drpBorderStyle.SelectedValue; if (currBorderStyle == "dashed") _styleToApply.BorderStyle = BorderStyle.Dashed; else if (currBorderStyle == "inset") _styleToApply.BorderStyle = BorderStyle.Inset; else if (currBorderStyle == "none") _styleToApply.BorderStyle = BorderStyle.None; else if (currBorderStyle == "outset") _styleToApply.BorderStyle = BorderStyle.Outset; else if (currBorderStyle == "solid") _styleToApply.BorderStyle = BorderStyle.Solid; ApplyNewStyle(_styleToApply); } } protected void drpBorderWidth_SelectedIndexChanged(object sender, EventArgs e) { if (drpBorderWidth.SelectedIndex > 0) { int borderSize = Convert.ToInt32(drpBorderWidth.SelectedValue); _styleToApply.BorderWidth = Unit.Pixel(borderSize); ApplyNewStyle(_styleToApply); } } private void ApplyNewStyle(Style styleToSet) { labHere.ApplyStyle(styleToSet); labAnother.ApplyStyle(styleToSet); txtBox.ApplyStyle(styleToSet); btnSample.ApplyStyle(styleToSet); } private void ChangeVisible(bool which) { labHere.Visible = which; labAnother.Visible = which; txtBox.Visible = which; btnSample.Visible = which; } private void ChangeEnabled(bool which) { labHere.Enabled = which; labAnother.Enabled = which; txtBox.Enabled = which; btnSample.Enabled = which; }
}</source>
Selection mode of asp:ListBox (C#)
<source lang="csharp">
<%@ Page Language="c#" Explicit="true" Strict="true" %> <script language="c#" runat="Server">
public void Verify(object sender, EventArgs e) { if (CountryListBox.SelectedIndex != -1) { OutputLabel.Text = "You selected: "; if (CountryListBox.SelectionMode == ListSelectionMode.Single) OutputLabel.Text += "" + CountryListBox.SelectedItem.Text + ""; else { for (int j=0;j<CountryListBox.Items.Count;j++) { if (CountryListBox.Items[j].Selected) OutputLabel.Text += "" + CountryListBox.Items[j].Text + ", "; } } } else OutputLabel.Text = "You didn"t selected any country!"; }
</script> <html>
<head> <title></title> </head> <body> <form id="Form1" method="post" runat="server"> <asp:ListBox ID="CountryListBox" Runat="server" SelectionMode="Multiple"> <asp:ListItem Value="1">United States</asp:ListItem> <asp:ListItem Value="2">United Kingdom</asp:ListItem> <asp:ListItem Value="3">China</asp:ListItem> <asp:ListItem Value="4">India</asp:ListItem> </asp:ListBox>
<asp:Button ID="SubmitButton" Runat="server" Text="Submit" OnClick="Verify"></asp:Button> <asp:Label ID="OutputLabel" Runat="server"></asp:Label> </form> </body>
</html></source>
Selection mode of asp:ListBox (VB)
<source lang="csharp">
<%@ Page Language="vb" Explicit="true" Strict="true" %> <script language="vb" runat="Server">
Public Sub Verify(sender As Object, e As EventArgs) Dim lstItem As ListItem If CountryListBox.SelectedIndex <> -1 Then OutputLabel.Text = "You selected: " If CountryListBox.SelectionMode = ListSelectionMode.Single Then OutputLabel.Text += "" & CountryListBox.SelectedItem.Text & "" Else For Each lstItem In CountryListBox.Items If lstItem.Selected Then OutputLabel.Text += "" & lstItem.Text & ", " End If Next End If Else OutputLabel.Text = "You didn"t selected any country!" End If End Sub
</script> <html>
<head> <title></title> </head> <body> <form id="Form1" method="post" runat="server"> <asp:ListBox ID="CountryListBox" Runat="server" SelectionMode="Multiple"> <asp:ListItem Value="1">United States</asp:ListItem> <asp:ListItem Value="2">United Kingdom</asp:ListItem> <asp:ListItem Value="3">China</asp:ListItem> <asp:ListItem Value="4">India</asp:ListItem> </asp:ListBox>
<asp:Button ID="SubmitButton" Runat="server" Text="Submit" OnClick="Verify"></asp:Button> <asp:Label ID="OutputLabel" Runat="server"></asp:Label> </form> </body>
</html></source>
Set array value to asp:ListBox DataSource (VB.net)
<source lang="csharp">
<script runat="server">
sub Page_Load(Sender as Object, e as EventArgs) if not Page.IsPostBack then dim arrColors() as string = {"red", "orange", "yellow", "green", "blue", "indigo", "violet"} lbColors.SelectedIndex = 0 lbColors.DataSource = arrColors end if DataBind() end sub
</script> <html><body>
<form runat="server"> <asp:Listbox runat="server" id="lbColors" width="150" AutoPostBack="true" SelectionMode="Single" > </asp:Listbox> <asp:Label id="lblMessage" runat="server" Text="<%# lbColors.SelectedItem.Text %>" /> </form>
</body></html></source>
Using the ListBox control (C#)
<source lang="csharp">
<%@ Page Language="C#" %> <script runat="server">
protected void Button1_Click(object sender, EventArgs e) { ListBox1.Items.Add(TextBox1.Text.ToString()); } protected void Button2_Click(object sender, EventArgs e) { Label1.Text = "You selected from the ListBox:
"; foreach (ListItem li in ListBox1.Items) { if (li.Selected == true) { Label1.Text += li.Text + "
"; } } }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Using the ListBox</title>
</head> <body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox> <asp:Button ID="Button1" Runat="server" Text="Add an additional item" OnClick="Button1_Click" />
<asp:ListBox ID="ListBox1" Runat="server" SelectionMode="multiple"> <asp:ListItem>Hematite</asp:ListItem> <asp:ListItem>Halite</asp:ListItem> <asp:ListItem>Limonite</asp:ListItem> <asp:ListItem>Magnetite</asp:ListItem> </asp:ListBox>
<asp:Button ID="Button2" Runat="server" Text="Submit" OnClick="Button2_Click" />
<asp:Label ID="Label1" Runat="server"></asp:Label>
</form>
</body> </html></source>
Using the ListBox control (VB)
<source lang="csharp">
<%@ Page Language="VB" %> <script runat="server">
Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) ListBox1.Items.Add(TextBox1.Text.ToString()) End Sub Protected Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label1.Text = "You selected from the ListBox:
" For Each li As ListItem In ListBox1.Items If li.Selected = True Then label1.Text += li.Text & "
" End If Next End Sub
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Using the ListBox</title>
</head> <body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" Runat="server"></asp:TextBox> <asp:Button ID="Button1" Runat="server" Text="Add an additional item" OnClick="Button1_Click" />
<asp:ListBox ID="ListBox1" Runat="server" SelectionMode="multiple"> <asp:ListItem>Hematite</asp:ListItem> <asp:ListItem>Halite</asp:ListItem> <asp:ListItem>Limonite</asp:ListItem> <asp:ListItem>Magnetite</asp:ListItem> </asp:ListBox>
<asp:Button ID="Button2" Runat="server" Text="Submit" OnClick="Button2_Click" />
<asp:Label ID="Label1" Runat="server"></asp:Label>
</form>
</body> </html></source>