Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用声明性数据绑定ASP.NET的Eval_Asp.net_Data Binding - Fatal编程技术网

使用声明性数据绑定ASP.NET的Eval

使用声明性数据绑定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

我一直在尝试使用声明性数据绑定ASP.NET,并与幕后的“魔力”作斗争

如何在ASP.NET2.0中实现这一点。它位于数据绑定的
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,它不会帮你弄清楚吗?这看起来更漂亮,我最终使用了什么。我确实必须公开该方法。我认为后面的代码将是一个本地引用。它也是一个字符串,而不是字符串[]。