ASPX sayfasındaki 'visible' özelliğinin değerini programlı olarak ayarla

Bir koşul için visible özelliğini bir etiketin doğru veya yanlış olarak ayarlamaya çalışıyorum. Bu ASPX sayfasında. Yanlış bir şey yapıyorum ve bu yürütüldüğünde hata alıyorum.

<td>
</td>

Hata alıyorum aşağıda.

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

Hangi değişikliklerin yapılması gerekiyor?

Tek yapmanız gereken LABEL'in görünür özelliğini 'Is Yetkili' sıfırdan büyük olduğunda true olarak ayarlamak.

3

5 cevap

Bunun sebebi sentaks hatası var, seni aptal tavşancık.

İşte, böyle olmalı:

 <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

Ayrıca, bazen sorunlara neden olan görünür bir özellik ayarlamaya çalışırken, program değerin bir Boole olmadığından şikayet edebilir. Bunun gibi açık bir dönüşüm de reklam vermek isteyebilirsiniz:

 Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsAuthorized")) %>' 
10
katma
Bu güzel bir cevap! Aptal tavşandan, düzeltilmiş kod satırına, düzeltmenin açıklamasına ve sonunda "siz de isteyebilirsiniz". Bu bir cevap için mükemmel bir formül - 1) cevap, 2) açıkla, 3) geliştir.
katma yazar CindyH, kaynak

IsAuthorized öğesinin bir bit türü olduğunu farz edersek, sadece bir boole yolunu vermek:

 Visible='<%#Convert.ToBoolean(Eval("IsAuthorized"))%>'  
4
katma
Çok teşekkürler. Bu, xml kaynağına sahip GridView için harika çalıştı. Elbette ki anahtar, Bind() çağrısını Eval() aramayla değiştirmekti.
katma yazar Greg, kaynak
Ve unutmayın, NULL olamaz. :)
katma yazar marquito, kaynak

Sunucu tarafı kontrolünde bunu yapabileceğinizi unutmayın:


Ancak, Page_Load'da olduğu gibi arkasındaki kodda DataBind'i çağırmazsanız çalışmaz:

myId.DataBind():
2
katma

IsAuthorized bir tamsayı olduğunu varsayarsak, şunu kullanmalısınız:

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

Eval, bir nesnesi döndürür, bu nedenle önce onu bir tamsayıya dönüştürmeniz gerekir.

1
katma
OP'nin içerdiği "> 0" ile doğru cevabın bu olduğu görülüyor.
katma yazar Mike Godin, kaynak
<td></td>
0
katma