2017-02-10 2 views
0

Я работаю с элементами управления DevExpress Asp.Net, в GridView EditTempalte необходимо добавить флажок, связать checkbox check и снять флажок с свойства столбца базы данных, а на новом элементе insert default default unchecked.Как связать CheckBox в ASPxGridView EditItemTemplate

это мой код.

<dx:ASPxGridView ID="ASPxGridView3" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource3" 
       KeyFieldName="UniqueID" Theme="Default"> 
    <SettingsSearchPanel Visible="True" /> 
    <Columns> 
     <dx:GridViewCommandColumn ShowDeleteButton="True" ShowEditButton="True" ShowInCustomizationForm="True" 
      ShowNewButtonInHeader="True" VisibleIndex="0"> 
     </dx:GridViewCommandColumn> 
     <dx:GridViewDataTextColumn FieldName="UniqueID" ReadOnly="True" ShowInCustomizationForm="True" 
      Visible="False" VisibleIndex="1"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ResourceID" ShowInCustomizationForm="True" Visible="False" 
      VisibleIndex="2" ReadOnly="True"> 
      <EditFormSettings Visible="False" /> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="ResourceName" ShowInCustomizationForm="True" VisibleIndex="3"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="Color" ShowInCustomizationForm="True" Visible="False" VisibleIndex="4"> 
      <EditFormSettings Visible="False" /> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="CustomField1" ShowInCustomizationForm="True" Visible="False" VisibleIndex="5"> 
      <EditFormSettings Visible="False" /> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="category_ClientID" ShowInCustomizationForm="True" 
      VisibleIndex="6" Visible="False"> 
     </dx:GridViewDataTextColumn> 
     <dx:GridViewDataTextColumn FieldName="IsAvailable" PropertiesTextEdit-NullDisplayText="true" 
      ShowInCustomizationForm="True" VisibleIndex="7"> 
      **<EditItemTemplate> 
       <dx:ASPxCheckBox ID="chkIsAvailableEdit" runat="server" Checked="true" Style="margin-left: 18px" 
        CheckState="Checked" Cursor="pointer" EnableDefaultAppearance="False" 
        EnableTheming="False"> 
        <CheckedImage Height="26px" Url="~/images/switchon.png" Width="70px"> 
        </CheckedImage> 
        <UncheckedImage Height="26px" Url="~/images/switchoff.png" Width="70px"> 
        </UncheckedImage> 
        <GrayedImage Url="~/images/switchoff.png"> 
        </GrayedImage> 
       </dx:ASPxCheckBox> 
      </EditItemTemplate>** 
     </dx:GridViewDataTextColumn> 
    </Columns> 
</dx:ASPxGridView> 
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:NCompassWebsiteConnectionString %>" 
    DeleteCommand="DELETE FROM [SchResources] WHERE [UniqueID] = @UniqueID" 
    InsertCommand="INSERT INTO [SchResources] ([ResourceID], [ResourceName], [Color], [CustomField1], [category_ClientID], 
      [IsAvailable]) VALUES (@ResourceID, @ResourceName, @Color, @CustomField1, @category_ClientID, @IsAvailable)" 
    SelectCommand="SELECT * FROM [SchResources] WHERE ([category_ClientID] = @category_ClientID)" 
    UpdateCommand="UPDATE [SchResources] SET [ResourceID] = @ResourceID, [ResourceName] = @ResourceName, [Color] = @Color, 
      [CustomField1] = @CustomField1, [category_ClientID] = @category_ClientID, [IsAvailable] = @IsAvailable WHERE [UniqueID] = @UniqueID"> 
    <DeleteParameters> 
     <asp:Parameter Name="UniqueID" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
     <asp:Parameter Name="ResourceID" Type="Int32" /> 
     <asp:Parameter Name="ResourceName" Type="String" /> 
     <asp:Parameter Name="Color" Type="Int32" /> 

     <asp:Parameter Name="CustomField1" Type="String" /> 
     <asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" /> 
     <asp:Parameter Name="IsAvailable" Type="String" /> 
    </InsertParameters> 
    <SelectParameters> 
     <asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" /> 
     <%--<asp:Parameter DefaultValue="62" Name="category_ClientID" Type="String" />--%> 
    </SelectParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="ResourceID" Type="Int32" /> 
     <asp:Parameter Name="ResourceName" Type="String" /> 
     <asp:Parameter Name="Color" Type="Int32" /> 

     <asp:Parameter Name="CustomField1" Type="String" /> 
     <asp:SessionParameter Name="category_ClientID" SessionField="ClientID" Type="String" /> 
     <asp:Parameter Name="IsAvailable" Type="String" /> 
     <asp:Parameter Name="UniqueID" Type="Int32" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 
+0

Какая ошибка? – jambonick

+0

Почему бы вам не связаться напрямую с DevExpress Support? – Mikhail

ответ

1

Просто используйте встроенный GridViewDataCheckColumn (специально предназначен для отображения/редактирования логических значений) вместо GridViewDataTextColumn (по умолчанию) один:

<%-- 
<dx:GridViewDataTextColumn FieldName="IsAvailable"> 
</dx:GridViewDataTextColumn 
--%> 

<dx:GridViewDataCheckColumn FieldName="IsAvailable"> 
</dx:GridViewDataCheckColumn 

Проверить this демо.

Или использовать стандартное выражение привязки двухсторонний (метод Bind), чтобы связать ASPxCheckBox с FieldName в нужную строку, в:

<dx:GridViewDataTextColumn FieldName="IsAvailable"> 
    <EditItemTemplate> 
     <dx:ASPxCheckBox ID="chkIsAvailableEdit" ... Value='<%#Bind("IsAvailable")'> 
     </dx:ASPxCheckBox> 
    </EditItemTemplate> 
</dx:GridViewDataTextColumn> 

Проверить this демо.

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