Редактирование / доступ к данным из столбца CheckBox в ASPX: GridView - c # - PullRequest
0 голосов
/ 20 апреля 2010

У меня есть GridView, к которому я привязываю таблицу данных, которую я создал вручную. И GridView, и dataTable содержат 2 столбца: Name и isBusy. Мой GridView выглядит так

<Columns>
   <asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">           
   </asp:BoundField>       
   <asp:CheckBoxField DataField="isBusy" HeaderText="Busy" SortExpression="isBusy" />   
</Columns>

Это отлично работает, за исключением того, что столбец Занят не редактируется, если вы не установите конкретную строку в режим редактирования. Я требую, чтобы весь столбец флажков был проверяемым. Поэтому я преобразовал столбец в шаблон, и поэтому столбцы выглядят так:

<Columns>
   <asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">           
   </asp:BoundField>       
   <asp:TemplateField HeaderText="Busy" SortExpression="isBusy">
       <ItemTemplate>
       <asp:CheckBox ID="isBusy" runat="server" Checked='<%# Eval("isBusy") %>' oncheckedchanged="CheckBoxBusy_CheckedChanged" />
       </ItemTemplate>
   </asp:TemplateField>       
</Columns>

Теперь выдается ошибка во время выполнения:

System.InvalidCastException was unhandled by user code
  Message="Specified cast is not valid."
  Source="App_Web_zzjsqlrr"
  StackTrace:
       at ASP.projects_aspx.__DataBinding__control24(Object sender, EventArgs e) in c:\Project\Users.aspx:line 189
       at System.Web.UI.Control.OnDataBinding(EventArgs e)
       at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
       at System.Web.UI.Control.DataBind()
       at System.Web.UI.Control.DataBindChildren()
  InnerException:

Есть идеи, почему это происходит? Следующий шаг, который мне понадобится, - это узнать, как установить и получить состояние флажка (я не смог найти, как вручную установить флажок).

1 Ответ

0 голосов
/ 20 апреля 2010

Хорошо, я получил ошибку, покрывающую значение флажка в bool:

Checked = '<% # Convert.ToBoolean (Eval ("isBusy"))%>'

Теперь я не могу найти, как вручную установить флажок и генерировать событие при нажатии флажка. Есть идеи?

...