2010-01-20 9 views
10

भीतर एक चेकबॉक्स की जांच की गई संपत्ति बाइंडिंग के लिए मुझे के जीवन मैं एक TemplateField (declaritively) के भीतर एक चेकबॉक्स नियंत्रण की जांच की गई संपत्ति के लिए बाध्य नहीं कर सकते।एक TemplateItem

मैं कोशिश की है:

प्रकार के 'System.Boolean' एक वस्तु नहीं बना सकता यह स्ट्रिंग है से:

<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> 

मैं एक चेतावनी बताते हुए दिखाई दे रहा है चेक किए गए 'संपत्ति

' के लिए 'प्रतिनिधित्व'

मैंने क्या गलत कर रहा हूँ?

उत्तर

17

यह क्योंकि दोहरे उद्धरण चिह्नों आप का उपयोग किया है की हो सकता है। प्रयास करें:

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

आप ठीक कह रहे हैं। मैं बाहरी उद्धरण के रूप में डबल कोट्स के साथ काम नहीं करूंगा – citronas

0

Eval भाव के मूल्यांकन के लिए है।

कोशिश बाइंड।

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

नियंत्रण के rowdatabound घटना में कोड-पीछे के माध्यम से इसे संभालने के लिए सबसे अच्छा है (मान लीजिए कि यह एक ग्रिडव्यू है)।

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

नोट: ऊपर वाला कोड त्रुटियां हो सकती हैं ...

या,

इस तरीके से डाटा पुन: प्राप्त जो उस विशेष क्षेत्र चेकबॉक्स एक क्षेत्र होना चाहिए करने के लिए बाध्य करने के लिए कोशिश कर रहा है प्रकार बिट (यानी यह या तो 1 या 0 हो सकता है)।

3

उपयोग एकल उद्धरण संपत्ति के मूल्य के आसपास:

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

1

यह एक बहुत पुराना सवाल है, लेकिन यहाँ मैं 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> 

क्योंकि मेरी संपत्ति बूलियन नहीं थी।