2013-02-17 3 views
2

Я использую привязку модели ASP.NET 4.5 для представления элементов в элементе управления ListView с редактированием.ASP.NET Model Binding, ListView & CheckBox.Checked

<asp:ListView ID="Results" runat="server" SelectMethod="SelectClientStatus" DataKeyNames="ID" ItemPlaceholderID="itemPlaceHolder" ItemType="ClientStatus" OnItemCommand="Results_ItemCommand" InsertItemPosition="LastItem" UpdateMethod="UpdateClientStatus" InsertMethod="InsertClientStatus"> 
    <LayoutTemplate> 
     <table> 
      <tr> 
       <th runat="server"> 
        <asp:LinkButton ID="SortByDescription" runat="server" ClientIDMode="Static" CommandName="Sort" CommandArgument="Description" Text="Description" /> 
       </th> 
       <th>Active</th> 
       <th></th> 
      </tr> 
      <asp:PlaceHolder ID="itemPlaceHolder" runat="server" /> 
     </table> 
     <agp:PagerControl runat="server" ID="PagerControl" /> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <tr> 
      <td> 
       <%#: Item.Description%> 
      </td> 
      <td> 
       <%#: Item.IsClientActive %> 
      </td> 
      <td> 
       <asp:LinkButton ID="Edit" runat="server" ClientIDMode="Static" CommandName="Edit" CommandArgument="<%#: Item.ID %>" Text="Edit" /> 
      </td> 
     </tr> 
    </ItemTemplate> 
</asp:ListView> 

Когда я добавляю мой EditItemTemplate, у меня есть Checkbox и я пытаюсь связать Checked свойство модели ...

<EditItemTemplate> 
    <tr> 
     <td> 
      <asp:TextBox ID="Description" runat="server" Text="<%#: BindItem.Description%>" /> 
     </td> 
     <td> 
      <asp:CheckBox ID="IsActive" runat="server" Checked="<%#: BindItem.IsClientActive %>" /> 
     </td> 
     <td> 
      <asp:LinkButton ID="Update" runat="server" ClientIDMode="Static" 
       CommandName="Update" CommandArgument="<%#: Item.ID %>" 
       Text="Update" /> 
      <asp:LinkButton ID="Cancel" runat="server" ClientIDMode="Static" 
       CommandName="Cancel" CommandArgument="<%#: Item.ID %>" 
       Text="Cancel" /> 
     </td> 
    </tr> 
</EditItemTemplate> 

Это где начинается проблема, запуск страницы в настоящее время показывает сообщение о «CS0030: не удается преобразовать„строка“типа для„BOOL“», побуждая с линией ...

<td> 
<asp:CheckBox ID="IsActive" runat="server" Checked="<%#: BindItem.IsClientActive %>" /> 
</td> 

Что я пропустил? Как связать значение IsClientActive с проверенным свойством элемента Checkbox? Стоит отметить, что в рамках модели свойство IsClientActive определяется как логическое и не может быть равно NULL.

ответ

2

My bad; Checked="<%#: BindItem.IsClientActive %>" должно было быть Checked="<%# BindItem.IsClientActive %>" (обратите внимание на упущение толстой кишки (:))