एएसपीएक्स पेज में प्रोग्रामिक रूप से 'दृश्यमान' संपत्ति के लिए मूल्य निर्धारित करें

मैं एक शर्त के आधार पर किसी लेबल के लिए दृश्यमान संपत्ति को सही या गलत पर सेट करने का प्रयास कर रहा हूं। यह एएसपीएक्स पेज में है। मैं कुछ गलत कर रहा हूं और इसे निष्पादित होने पर त्रुटि प्राप्त कर रहा हूं।

<td>
</td>

मुझे जो त्रुटि मिल रही है वह नीचे है।

Compiler Error Message: CS0019: Operator '>' cannot be applied to operands of type 'object' and 'int'

क्या परिवर्तन करने की जरूरत है?

जब मुझे 'अनधिकृत' शून्य से अधिक होता है तो मुझे सभी को LABEL की दृश्यमान संपत्ति को सही करने की आवश्यकता होती है।

3

5 उत्तर

ऐसा इसलिए है क्योंकि आपके पास सिंटैक्स त्रुटि है, आप मूर्खतापूर्ण बनी हैं।

यहां आप हैं, यह इस तरह होना चाहिए:

 <td></td>

You had an extra > and a 0 in there somewhere. Also, since you aren't doing anything between the and , you can close it with an end slash and skip a separate ending tag. Like this

कभी-कभी, एक दृश्यमान संपत्ति सेट करने की कोशिश करने से समस्याएं उत्पन्न होती हैं, प्रोग्राम शिकायत कर सकता है कि मूल्य एक बूलियन नहीं था। आप इस तरह के एक स्पष्ट रूपांतरण भी विज्ञापन करना चाह सकते हैं:

 Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsAuthorized")) %>' 
10
जोड़ा
यह एक सुंदर जवाब है! मूर्खतापूर्ण बनी से, कोड की सही रेखा तक, सुधार की व्याख्या के लिए, और फिर अंत में "आप भी चाह सकते हैं"। यह उत्तर के लिए एकदम सही सूत्र है - 1) उत्तर, 2) समझाओ, 3) सुधार करें।
जोड़ा लेखक CindyH, स्रोत

यह मानते हुए कि IsAuthorized थोड़ा सा प्रकार है, बस इसे एक बूलियन पर डालें:

 Visible='<%#Convert.ToBoolean(Eval("IsAuthorized"))%>'  
4
जोड़ा
बहुत धन्यवाद। यह एक xml स्रोत के साथ ग्रिड व्यू के लिए बहुत अच्छा काम किया। पाठ्यक्रम की कुंजी Eval() कॉल के साथ बाइंड() कॉल को प्रतिस्थापित करना था।
जोड़ा लेखक Greg, स्रोत
और याद रखें कि यह पूर्ण नहीं हो सकता है। :)
जोड़ा लेखक marquito, स्रोत

सर्वर साइड कंट्रोल पर नोट करें आप यह कर सकते हैं:


लेकिन यह तब तक काम नहीं करेगा जब तक कि आप डेटाबैंड को पीछे कोड में कॉल न करें, जैसे पेज_लोड में:

myId.DataBind():
2
जोड़ा

मान लें <कोड> IsAuthorized एक पूर्णांक है, आपको इसका उपयोग करना चाहिए:

Visible='<%# ((int)DataBinder.Eval(Container.DataItem, "IsAuthorized")) > 0 %>'

Eval एक ऑब्जेक्ट देता है, इसलिए आपको इसे पहले पूर्णांक पर डालना होगा।

1
जोड़ा
ऐसा लगता है कि ओपी द्वारा "> 0" के साथ, यह सही जवाब है।
जोड़ा लेखक Mike Godin, स्रोत
<td></td>
0
जोड़ा