リストビューを使用して、モデル バインディングを使用して一部のデータを表示しています。データ ソースの外部キー列、つまりブック列に関連するリストビューの列を並べ替えようとしています。
データモデルは次のとおりです。
public class Book
{
public Book() {
this.Factions = new HashSet<Faction>();
}
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Title { get; set; }
public virtual ICollection<Faction> Factions { get; set; }
}
public class Faction
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[MaxLength(10)]
public string Abbreviation { get; set; }
public int? BookId { get; set; }
public virtual Book Book { get; set; }
}
これは、ListItem の見出しを表示するための HTML です。
<asp:ListView ID="FactionListView" runat="server"
ItemType="DCW.Models.Faction" DataKeyNames="Id"
SelectMethod="FactionGetData"
<LayoutTemplate>
<table class="table table-hover table-bordered">
<thead>
<tr>
<th>
<asp:LinkButton ID="FactionListViewName" runat="server" CommandName="Sort"
CommandArgument="Name">Name</asp:LinkButton></th>
<th>
<asp:LinkButton ID="FactionListViewAbbreviation" runat="server" CommandName="Sort"
CommandArgument="Abbreviation">Abbreviation</asp:LinkButton></th>
<th>
<asp:LinkButton ID="FactionListViewBook" runat="server" CommandName="Sort"
CommandArgument="Book">Book</asp:LinkButton></th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</tbody>
</table>
</LayoutTemplate>
Book LinkButton をクリックすると、次のエラーが表示されます。
Linkbutton CommandArgument を Book.Id または it.Book.Title (他の投稿で読んだことがあるかもしれません) に変更すると、次のエラーが表示されます: Sys.WebForms.PageRequestManagerServerErrorException: Exception has been throw by the target of an呼び出し。
では、モデル バインド リストビューの関連する列を並べ替えるにはどうすればよいでしょうか。
ありがとう。