2010-01-20 10 views
10

Bende bir CheckBox denetiminin Checked özelliğini bir TemplateField içinde (declaritively) bağlayamıyorum.Bir CheckBox'ın Checked Property öğesinin bir TemplateItem içinde bağlanması

denedim: o dize var dan

türündeki 'System.Boolean' bir nesne oluşturulamıyor:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval("Deactivated")%>"></asp:CheckBox> 
    </ItemTemplate> 
<asp:TemplateField> 

ve

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="deactivated" runat="server" checked="<%#Eval(Container.DataItem, "Deactivated")%>"></asp:CheckBox> 
    </ItemTemplate> 
    </asp:TemplateField>  
</asp:TemplateField> 

Ben belirten bir uyarı görmeye devam 'Denetlenen' özellik için gösterim ''

Neyi yanlış yapıyorum?

cevap

17

Kullandığınız çift tırnaklardan kaynaklanıyor olabilir. Deneyin:

checked= '<%# Eval("Deactivated") %>' 
+0

Haklısınız. Dış alıntı olarak çift tırnak ile çalışmayacağım – citronas

0

Değerlendirme ifadeleri değerlendirmek içindir.

Bağlamayı deneyin.

checked='<%#Bind("Deactivated")%>' 
1

Bu denetimin RowDataBound durumunda kod arkasında yoluyla bu işlemek için en iyisi (bir GRIDVIEW var varsayarak).

if (e.Row.RowType == RowType.DataRow) 
{ 
    CheckBox chk = (CheckBox) GridView1.FindControl("deactivated"); 
    chk.Checked = true; 
} 

Not: hatalar içerebilir abv kodu ...

YA,

şekilde veri alma onay kutusunun bir saha olmalıdır bağlamak için çalışıyor o belirli alan tip bitin (yani 1 veya 0 olabilir).

3

Kullanım tek tırnak emlak değerini etrafında:

<asp:CheckBox ID="deactivated" runat="server" checked='<%#Eval("Deactivated")%>'></asp:CheckBox>

1

Bu oldukça eski bir soru, ama burada VS2013 yapmak buydu, 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> 

çünkü mülküm boolean değildi.

İlgili konular