【问题标题】:Webforms - DataBinding() GridView - how to bind a List that has a List<string> property?Webforms - DataBinding() GridView - 如何绑定具有 List<string> 属性的列表?
【发布时间】:2019-11-01 15:27:11
【问题描述】:

我尝试阅读有关绑定列表属性的其他帖子,但提供的答案太高级了,我无法理解。我不确定自己该怎么做才能操纵输出。

我正在尝试将我的书籍列表绑定到 webforms 上的 gridview 中,但属性 Authors 显然没有写入作者的姓名。
我得到了这个: System.Collections.Generic.List`1[System.String]

如果 AutogenerateColumns 设置为 true,则根本不会生成 Authors 列。

    public string Title { get; set; }
    public List<string> Authors { get; set; }
    public string ISBN { get; set; }
    public double Price { get; set; }
output = from b in Books
         where b.Author.Any(a => a.ToUpper().Contains(InputBook.Text.ToUpper()))
         select b;

         gridview.DataSource = output.ToList();
         gridview.DataBind();
<asp:GridView ID="gridview" runat="server" AutoGenerateColumns="False">
    <Columns><asp:BoundField HeaderText="Author" DataField="Author" /></Columns>
    <Columns><asp:BoundField HeaderText="Title" DataField="Title" /></Columns>
    <Columns><asp:BoundField HeaderText="ISBN" DataField="ISBN" /></Columns>
   <Columns><asp:BoundField HeaderText="Price" DataField="Price" /></Columns>
</asp:GridView>

【问题讨论】:

  • 不是 100% 确定这是否会有所帮助,但我很久以前就遇到过类似的问题,并且停止了研究。我没有得到最佳解决方案的答案,但是在问题中,我最终记录了一个不太漂亮的解决方案,类似于您提出的解决方案。也许这有帮助:stackoverflow.com/questions/32646177/…
  • 对不起!自从有人早些时候发表评论并删除了他的评论以来,我通过回答自己来影响自己的帖子。我想回答一下,如果将来有人遇到类似的问题,他们会有解决方案。不过谢谢你帮助我的朋友!

标签: c# linq gridview binaryfiles


【解决方案1】:

我被告知将我的属性List&lt;string&gt; Authors 转换为具有List&lt;string&gt; Names 属性的类 Authors。所以当你想把它绑定到你的gridview时,它会调用override ToString()方法。在那里你可以做一个 for 循环并编写一个简单的字符串。

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 1970-01-01
    • 2010-10-04
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多