小编Fer*_*ndo的帖子

ASP.NET Repeater和DataBinder.Eval

<asp:Repeater>我的网页中有一个绑定到编程创建的数据集的网页.

此转发器的目的是从AZ创建索引,单击该索引时,将刷新页面上的信息.

转发器有一个链接按钮,如下所示:

<asp:LinkButton ID="indexLetter" Text='<%#DataBinder.Eval(Container.DataItem,"letter")%>'
runat="server"   CssClass='<%#DataBinder.Eval(Container.DataItem, "cssclass")%>'
Enabled='<%#DataBinder.Eval(Container.DataItem,"enabled")%>'></asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)

数据集按以下方式创建:

protected DataSet getIndex(String index)
    {
        DataSet ds = new DataSet();
        ds.Tables.Add("index");
        ds.Tables["index"].Columns.Add("letter");
        ds.Tables["index"].Columns.Add("cssclass");            
        ds.Tables["index"].Columns.Add("enabled");
        char alphaStart = Char.Parse("A");
        char alphaEnd = Char.Parse("Z");
        for (char i = alphaStart; i <= alphaEnd; i++)
        {
            String cssclass="", enabled="true";
            if (index == i.ToString())
            {
                cssclass = "selected";
                enabled = "false";
            }
            ds.Tables["index"].Rows.Add(new Object[3] {i.ToString(),cssclass,enabled });
        }
        return ds;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行页面时,会抛出"指定的强制转换无效异常" Text='<%#DataBinder.Eval(Container.DataItem,"letter")'.我不知道为什么,我已经尝试手动转换为String(String),我尝试过ToString()方法,我已经尝试了一切.

另外,如果在调试器中我为DataBinder.Eval(Container.DataItem,"letter")添加一个监视,它返回的值是"A",根据我的说法,对于Text属性应该没问题.

编辑:

这是一个例外:

用户代码未处理System.InvalidCastException
消息="指定的强制转换无效".Source ="App_Web_cmu9mtyc"
StackTrace:位于e:\ Documents and Settings\Fernando\My …

.net c# asp.net data-binding repeater

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

data-binding ×1

repeater ×1