2011-10-07 13 views
5

Estoy tratando de marcar una casilla de verificación si el valor es 1 o 0 básicamente en mi base de datos tengo un campo llamado Active (bit, not null) y puedo pasar el valor al gridview .. pero ahora que estoy tratando de hacer que comprueba si el bit es 1 o no comprueba si el bit es 0, pero no su trabajo .. sólo muestra sin marcar, pero el bit es 1.Cómo marcar una casilla de verificación en una vista de cuadrícula usando DataBinder.Eval

<ItemTemplate> 
    <asp:CheckBox ID="ItemCheck" runat="server" 
    Enabled='<%# (DataBinder.Eval(Container.DataItem, "Active")) %>' /> 
    </ItemTemplate> 

Cualquier ayuda sería muy apreciado

Respuesta

7

Dar a este un tiro:

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Convert.ToBoolean(Eval("Active"))%>' .. /> 

Usted probablemente también pueda hacerlo de esta manera:

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#((bool)Eval("Active"))%>' .. /> 
1

Puede usar un CheckBoxField que lo hará por usted automáticamente y es un subcontrol predeterminado de un GridView

<asp:GridView ......> 
    <Columns> 
    <asp:CheckBoxField DataField="Active" SortExpression="Active" /> 
    </Columns> 
</asp:GridView> 

Todo esto es una cuestión de estilo, pero yo prefiero usar un RadioButtonList ya que usualmente es más intuitivo para un usuario

<asp:TemplateField ....> 
    <ItemTemplate> 
     <asp:RadioButtonList ID="rblActive" runat="server" 
      SelectedValue='<%# Bind("Active") %>' 
      RepeatDirection="Horizontal"> 
      <asp:ListItem Value="1">Enabled</asp:ListItem> 
      <asp:ListItem Value="0">Disabled</asp:ListItem> 
     </asp:RadioButtonList> 
    <ItemTemplate> 
</asp:TemplateField> 
Cuestiones relacionadas