使用声明性数据绑定ASP.NET的Eval
我一直在尝试使用声明性数据绑定ASP.NET,并与幕后的“魔力”作斗争 如何在ASP.NET2.0中实现这一点。它位于数据绑定的使用声明性数据绑定ASP.NET的Eval,asp.net,data-binding,Asp.net,Data Binding,我一直在尝试使用声明性数据绑定ASP.NET,并与幕后的“魔力”作斗争 如何在ASP.NET2.0中实现这一点。它位于数据绑定的FormView控件内 <asp:Label ID="RecipientsLabel" runat="server" Text='<%# String.Join("; ", Eval("HtmlEncodedRecipients")) %>'> </asp:Label> 注意:HtmlEncodedRecipients
FormView
控件内
<asp:Label ID="RecipientsLabel" runat="server"
Text='<%# String.Join("; ", Eval("HtmlEncodedRecipients")) %>'>
</asp:Label>
注意:HtmlEncodedRecipients
是一个列表
属性
我得到这个错误:
匹配的最佳重载方法
“string.Join(string,string[])”已被删除
一些无效的参数
尝试将
Eval(“HtmlEncodedRecipients”)
转换到列表中,然后调用.ToArray()
。我发现,如果将数据项转换为您期望的类型,生活会轻松得多。这让intellisense开始工作,这样您就可以看到发生了什么
((MyObject)Container.DataItem).HtmlEncodedRecipients
如果是一个列表,那么这就是您想要的:
String.Join("; ", ((List<string>)Eval("HtmlEncodedRecipients")).ToArray())
String.Join(;”,((List)Eval(“HtmlEncodedRecipients”).ToArray()
(需要记住的是,如果将Eval单独放入数据绑定字符串中,它将显示一个“nice”值。但是如果在表达式中使用它,它将返回type object,因此必须强制转换它
但是,这有点太粗糙了,无法放入内联,所以请执行以下操作:
文本=“”>
在你的代码背后
string[] ConvertRecipients(object recipientObject)
{
if(recipientObject is List<string>)
{
...
string[]ConvertRecipients(对象recipientObject)
{
if(recipientObject为列表)
{
...
谢谢Joel。我试过其中一种,但不是同时试过两种。下面的方法对我很有效。不太优雅,但很有效。他想要的是一根绳子,而不是一根绳子[]结果,但除此之外,这就是我所说的。如果你的参数是List,它不会帮你弄清楚吗?这看起来更漂亮,我最终使用了什么。我确实必须公开该方法。我认为后面的代码将是一个本地引用。它也是一个字符串,而不是字符串[]。