2010-07-27 4 views
1

У меня есть следующие флажки в моей GridView:Checkbox ItemTemplate текст TemplateField после DataBound

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

И это работает очень хорошо. Я заполняю его значением bool. Проблема заключается в том, что его показ текстовой строки в GridView, как:

Правда [х] Ложных [] Правда [х]

и так долго ... Я хотел бы показать только флажки , Я пробовал это в событии rowDataBound:

if (result.Active) 
    { 
     ((CheckBox)e.Row.FindControl("Active")).Checked = true; 
     ((CheckBox)e.Row.FindControl("Active")).Text = string.Empty; 
    } 

Но его не работает. Есть выход?

Спасибо,

Педро Dusso

ответ

3

Вместо TemplateField, почему бы вам не просто использовать CheckBoxField?

<asp:CheckBoxField DataField="Active" HeaderText="Active" /> 

Если вы должны использовать TemplateField из Insert/Edit, то вы должны быть в состоянии сделать

<asp:TemplateField> 
    <ItemTemplate> 
      <asp:CheckBox id="CheckBoxActive" runat="server" Checked='<%#Eval("Active") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

Большое спасибо, это решение работало нормально; и да, я использую templateField, потому что вставка ... –

+0

Еще один вопрос, если мне нужно получить проверенное изменение, как мне это сделать? Просто объявите OnCheckedChange в aspx, и они создают метод в .cs? –

+0

Да! это все, что вам нужно сделать –

Смежные вопросы