ASP.NET Tutorial/ASP.net Controls/ListBox

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

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>