繁体   English   中英

ASP.net转发器问题

[英]ASP.net repeater problem

    <asp:Repeater runat="server" ID="QuestionList">
        <ItemTemplate>
            <tr align="center">
                <td><a href="HelpViewTicket.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "ID") %>"><%# DataBinder.Eval(Container.DataItem, "ID") %></a></td>
                <td><a href="HelpViewTicket.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "ID") %>"><%# DataBinder.Eval(Container.DataItem, "Subject")%></a></td>
                <td><abbr class="timeago" title="2008-07-17T09:24:17Z"><%# CommonFunctions.NiceDateTime(DataBinder.Eval(Container.DataItem, "DateSubmitted"))%></abbr></td>
                <td></td>                    
                <td><%# DataBinder.Eval(Container.DataItem, "Priority")%></td>
            </tr>
        </ItemTemplate>
    </asp:Repeater>

我的转发器工作正常,但如何通过传递函数来格式化它使用的数据? 例如,行:

CommonFunctions.NiceDateTime(DataBinder.Eval(Container.DataItem, "DateSubmitted"))

不起作用,因为当前上下文中不存在容器。

确实如此。 以下在ItemTemplate中为我工作:

<%# Server.HtmlEncode((Container.DataItem as YourFancyDataSetType).Description) %>

当然,'YourFancyDataSetType'可以是任何类型。 只需将当前DataItem转换/转换为基础类型,并将其提供给您可能喜欢的任何函数。

@Edit:错别字

首先,我认为您只能使用<%# Eval("ID") %>作为<%# DataBinder.Eval(Container.DataItem, "ID") %>的快捷方式,它可以清理您的代码许多。 Eval的结果传递给方法应该没有任何问题, Eval应该在传入之前得到评估。我相信它会以对象或字符串的形式传入; 我已经做了几年了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM