我有listView
和textBox
:
<table>
<tr><td>Reciver:<table><tr>
<asp:ListView ID="showRecivers" runat="server"><td><%# Eval("name")%></td> </asp:ListView>
</tr></table>
<asp:TextBox ID="reciver" runat="server" OnTextChanged="style_Recivers" AutoPostBack="true"></asp:TextBox>
</td></tr></table>
list
listview
绑定到:{/ p>
public List<Reciver> recivers = new List<Reciver>();
和函数style_Recivers
:
protected void style_Recivers(object sender, EventArgs e)
{
string[] separator = new string[] { "," };
string[] reciversArray = reciver.Text.ToString().Split(separator, StringSplitOptions.None);
reciversArray = reciversArray.Distinct().ToArray();
for (int i = 0; i < reciversArray.Length; i++)
{
recivers.Add(new Reciver(reciversArray[i]));
}
this.showRecivers.DataSource = recivers;
this.showRecivers.DataBind();
}
和班级Reciver
:
public class Reciver
{
public string name;
public Reciver(string name)
{
this.name = name;
}
public string getName()
{
return this.name;
}
public void setName(string name)
{
this.name = name;
}
}
我的想法是,当一些名字通过, saperator加入textBox时,style_Reciver
函数被激活,每个名字都会立即显示在ListView中。
但它不起作用,它给了我错误
ASP.NET runtime error:code blocks are not supported in this context
并标出这一行:
<asp:ListView ID="showRecivers" runat="server"><td><%# Eval("name")%></td> </asp:ListView>
首发。可能更多的事情不会工作,但这是第一件事。
我该如何解决?谢谢你的帮助
修改
添加<ItemTemplate>
后,它有效
现在它给了我一个不同的错误:
Reciver' does not contain a property with the name 'name'
现在问题是什么?
答案 0 :(得分:1)
此处的列表视图内容应包含在ItemTemplate
:
<asp:ListView ID="showRecivers" runat="server">
<ItemTemplate>
<td><%# Eval("name")%></td>
</ItemTemplate>
</asp:ListView>
更新。您的班级声明也存在问题。以下是用C#传统方式声明的方式:
public class Reciver
{
public string _name;
public Reciver(string name)
{
this.name = name;
}
public string name
{
get { return this._name; }
set { this._name = value; }
}
}