ASP.NET运行时错误:此上下文不支持代码块 - 使用ListView

时间:2014-03-31 16:09:39

标签: html asp.net

我有listViewtextBox

        <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'

现在问题是什么?

1 个答案:

答案 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; } 
    }
}