在asp.net web表单中将文本从文本框添加到列表框

在asp.net web表单中将文本从文本框添加到列表框,asp.net,vb.net,listbox,Asp.net,Vb.net,Listbox,好的,我知道这对基于windows的表单有效,因为我已经使用过很多次了 lstBoxExternal.Items.AddRange(txtBoxNameExternal.Text.Split(vbNewLine)) 但我猜这对基于we的表单不起作用?有人能告诉我为什么,以及用什么正确的方法在点击按钮时从文本框向列表框添加文本吗 错误 字符串的值类型无法转换为System.Web.UI.WebControl.Listitem的一维数组ASP.NETListBoxWeb控件的Add

好的,我知道这对基于windows的表单有效,因为我已经使用过很多次了

        lstBoxExternal.Items.AddRange(txtBoxNameExternal.Text.Split(vbNewLine))
但我猜这对基于we的表单不起作用?有人能告诉我为什么,以及用什么正确的方法在点击按钮时从文本框向列表框添加文本吗

错误


字符串的值类型无法转换为System.Web.UI.WebControl.Listitem的一维数组

ASP.NET
ListBox
Web控件的
AddRange()
方法需要一个
Listitem
数组,这就是为什么它不能从Windows窗体轻松转换的原因

如果您使用
txtBoxNameExternal
中的数据来完全替换
列表框中可能已经存在的任何项目(而不是添加到项目中),您可以使用
DataBind()
,这可能是最简单的方法:

    lstBoxExternal.DataSource = txtBoxNameExternal.Text.Split(vbNewLine)
    lstBoxExternal.DataBind()
如果您需要继续在每个按钮上添加项目,单击有几种方法可以做到这一点,但我通常通过在循环中添加项目来实现:

Dim items As [String]() = txtBoxNameExternal.Text.Split(vbNewLine)
For Each item As [String] In items
    lstBoxExternal.Items.Add(New ListItem(item))
Next
在将字符串数组绑定到DropDownList/ListBox控件时,请参见此相关答案,以了解一些提示: