Ответ 1
Это может быть из-за двойных кавычек, которые вы использовали. Попробуйте:
checked= '<%# Eval("Deactivated") %>'
В течение жизни я не могу привязать свойство Checked элемента управления CheckBox в шаблоне (декларируемо).
Я пробовал:
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval("Deactivated")%>"></asp:CheckBox>
</ItemTemplate>
<asp:TemplateField>
и
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval(Container.DataItem, "Deactivated")%>"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</asp:TemplateField>
Я вижу предупреждение:
Невозможно создать объект типа 'System.Boolean' из него строковое представление '' для свойства 'Checked'
Что я делаю неправильно?
Это может быть из-за двойных кавычек, которые вы использовали. Попробуйте:
checked= '<%# Eval("Deactivated") %>'
Используйте одиночные кавычки вокруг значения свойства:
<asp:CheckBox ID="deactivated" runat="server" checked='<%#Eval("Deactivated")%>'></asp:CheckBox>
Лучше всего обработать это с помощью кода в событии controldataoundound (при условии, что это gridview).
if (e.Row.RowType == RowType.DataRow)
{
CheckBox chk = (CheckBox) GridView1.FindControl("deactivated");
chk.Checked = true;
}
Примечание. Код abv может содержать ошибки...
ИЛИ
Извлеките данные таким образом, чтобы это конкретное поле, которое флажок пытается связать, должно быть полем типа бит (то есть оно может иметь 1 или 0).
Это довольно старый вопрос, но вот что мне нужно было сделать в VS2013, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
<asp:TemplateColumn ItemStyle-Width="50" HeaderText="Is Verified">
<ItemTemplate>
<asp:CheckBox ID="chkVerified" runat="server" AutoPostBack="true" EnableViewState="true" OnCheckedChanged="chkVerified_CheckedChanged" Checked='<%#DataBinder.GetPropertyValue(Container.DataItem,"IsVerified").ToString()=="0"%>' />
</ItemTemplate>
</asp:TemplateColumn>
потому что мое свойство не было логическим.
Eval предназначен для вычисления выражений.
Попробуйте привязать.
checked='<%#Bind("Deactivated")%>'