简体   繁体   中英

How to bind CheckBox in ASPxGridView EditItemTemplate

I am working with DevExpress Asp.Net Controls, In GridView EditTempalte have to add checkbox, have to bind checkbox check and uncheck with database column property and on new item insert default unchecked.

here my code.

<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>

Simply use the built-in GridViewDataCheckColumn (specially intended for displaying/editing boolean values) instead of the GridViewDataTextColumn (the default) one:

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

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

Check this demo.

Or, use the standard two-way binding expression (the Bind method) to bind ASPxCheckBox with the necessary row's FieldName:

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

Check this demo.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM