主要介绍:自定义数据、绑定数据库数据
前台代码:
<div>
<asp:ListBox ID="ListBox1" runat="server" Rows ="" Width ="100px">
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
<asp:ListItem></asp:ListItem>
</asp:ListBox><br /><br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick ="Button1_Click"/><br /><br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
*其中的
Rows:设置该属性以指定一次显示多少项。
Width:宽度。
Height:高度。
SelectionMode ="Multiple":可以选中多个。
SelectionMode ="Single":只能选一个。
其余属性,参见MSDN。
后台代码:
/// <summary>
/// Button1按钮的单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
string s = string.Empty; s = ListBox1.SelectedItem.Text; this.Label1.Text = "您点选的是:" + s;
}
最终效果:
以上是自定义数据的ListBox控件。
--------------------------------------------------------------------
下面是绑定数据库数据的ListBox控件:
一:
首先,先在数据库中建立一张表:
CREATE TABLE KK
(
id INT,
[name] VARCHAR(20),
)
然后插入数据:
INSERT INTO KK (id, [name]) VALUES (1, '张三')
INSERT INTO KK (id, [name]) VALUES (2, '李四')
INSERT INTO KK (id, [name]) VALUES (3, '王五')
INSERT INTO KK (id, [name]) VALUES (4, '赵六')
·
·
·
·
·
这是最终建立的表:
二:
然后是前台代码(其中可以设置SelectionMode为多选):
<div>
<asp:ListBox ID="ListBox1" runat="server" Rows ="5" Width ="100px" ></asp:ListBox><br /><br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick ="Button1_Click"/><br /><br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
然后是后台代码:
web.config中数据库连接字符串:
<connectionStrings>
<add name="connectionString" connectionString="data source = (local); database = TEMP; integrated security = true"/>
</connectionStrings>
后台Page_Load中的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
/* 为什么判断IsPostBack:当你需要执行一些仅需要在页面第一次浏览时执行的事件
* 比如页面初始化,数据绑定之类的操作时,需要将操作放在if(!IspostBack)里面,
* 这样当你在点击页面中的按钮或者执行其他回发事件时,不贵再次初搜索始化或者
* 重复绑定数据,提高了执行效率。
*/
{
string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); string sql = "SELECT * FROM KK"; SqlCommand cmd = new SqlCommand(sql, connection); SqlDataReader sdr = cmd.ExecuteReader(); //任意给的字段名,只要是想显示在界面上的就行。其值给了:Text
this.ListBox1.DataTextField = "name"; //任意给得字段名,只要是想在后台看到前台看不到的数据就行。其值给了:Value
this.ListBox1.DataValueField = "id";//此字段可以去掉。value的值默认为Text的值。 this.ListBox1.DataSource = sdr; this.ListBox1.DataBind(); sdr.Close(); connection.Close();
}
}
其中,检查网页是否会发很重要。if (!IsPostBack)。如果没有这个,将无法使用。
后台之中Button1(结果)按钮:
/// <summary>
/// Button1按钮的单击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
string s = string.Empty; for (int i = ; i < ListBox1.Items.Count; i++)
{
if (ListBox1.Items[i].Selected)
{
s += ListBox1.Items[i].Text + " ";
}
} this.Label1.Text = "您点选的是:" + s;
}
最终效果: