Pergunta

eu tenho um dataview com:

<asp:BoundField DataField="AccontoAutorizzato" HeaderText="Acconto Aut." 
                        SortExpression="AccontoAutorizzato" dataformatstring="{0:C}"  />

É possível ocultar os valores de cada com uma condição como

 Visible=<%# ((Int32)Eval("StatoID") < 2) %>

?

Graças

Foi útil?

Solução

É possível com seguinte

<asp:TemplateField HeaderText="Acconto Aut." >
     <ItemTemplate>
          <asp:Label ID="lbl" runat="server" Text='<%# Bind"AccontoAutorizzato") %>'
                        Visible='<%# ((int)(Eval("StatoID")) < 2) %>' />
     </ItemTemplate>
</asp:TemplateField>

Outras dicas

de Saar resposta não funcionou para mim, porque mesmo que a ligação deve retornar um verdadeiro ou falso, o intérprete não poderia realmente converter o resultado condição para um booleano valor.

Então, ao invés, eu usei uma escolha explícita de valores Boolean:

<asp:TemplateField HeaderText="Acconto Aut." >
     <ItemTemplate>
          <asp:Label ID="lbl" runat="server" Text='<%# Bind"AccontoAutorizzato") %>'
                        Visible='<%# ((int)(Eval("StatoID")) < 2) ? Convert.ToBoolean(0) : Convert.ToBoolean(1) %>' />
     </ItemTemplate>
</asp:TemplateField>

Espero que isso torna mais fácil para os outros que lutam com o erro booleana ao aplicá-la a uma propriedade Visible.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top