如果ObjectDataSource.SelectMethod =A,如果A()返回O类型的单个对象,则该对象包装在一个元素IEnumerable集合中,并由ODS.Select方法返回
因此,假设ODS.SelectMethod指向方法A(),那么如果A()返回null,当ODS调用该null时,这个null被包装到一个元素IEnumerable集合中,并且不会抛出任何异常。类似地,如果ODS.SelectMethod指向方法B(),该方法返回对象列表,如果B()在ODS调用时返回空集合,则不会引发异常。
但是,如果一个方法将返回空字符串集合( ODS.Select调用时)一个空字符串集合(string[]),那么我将得到异常“GridView的数据源没有任何属性或属性来生成列”。空字符串集合与其他不导致异常的空集合有何不同?
谢谢
发布于 2009-12-08 02:43:57
如果GridView将AutoGenerateColumns
设置为true
,则需要具有可绑定成员的对象序列,如DataRow
。列自动生成器检查传入的序列的签名,并知道如何处理几种不同的情况,例如DataRow,它有一个列集合,可以推断成GridView控件上的列列表。字符串没有这样的属性。将AutoGenerateColumns
设置为false
,并定义自己的列,如下所示:
<Columns>
<asp:TemplateField>
<ItemTemplate><%# Container.DataItem %></ItemTemplate>
</asp:TemplateField>
</Columns>
字符串作为GridView的数据源是非常有限的--除非您计划按字符串的长度来评估该字符串的属性,否则您实际上可以只打印字符串本身(DataItem
)。
https://stackoverflow.com/questions/1862953
复制相似问题