Webforms - DataBinding () GridView - как связать список, который имеет свойство List <string>? - PullRequest
1 голос
/ 01 ноября 2019

Я пытался прочитать другие посты о свойствах списка связывания, но предоставленные ответы были слишком сложными, чтобы я мог их понять. Я не уверен, что делать самому, чтобы иметь возможность манипулировать выводом.

Я пытаюсь связать свой список книг в gridview по веб-формам, но свойство Авторы явно ненаписание имен авторов.
Вместо этого я получаю: System.Collections.Generic.List`1[System.String]

И если для AutogenerateColumns установлено значение true, то столбец Авторы вообще не создается.

    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>

1 Ответ

1 голос
/ 02 ноября 2019

Мне сказали преобразовать мое свойство List<string> Authors в класс Authors, у которого есть свойство List<string> Names. Поэтому, когда вы захотите связать его с вашим сеточным представлением, он вызовет метод override ToString(). Там вы можете сделать цикл for и написать простую строку.

...