Skip to content

DevExpress-Examples/asp-net-web-forms-grid-use-grid-lookup-in-multiple-selection-mode-to-edit-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grid View for ASP.NET Web Forms - How to use a grid lookup control in multiple selection mode to edit grid data

This example demonstrates how to add a grid lookup control in multiple selection mode to the grid's edit form template.

Grid Lookup in multiple selection mode

Overview

When the ASPxGridLookup control is in multiple selection mode (the GridLookup.SelectionMode property is set to Multiple), use the following API members to access the selected items:

<dx:ASPxGridView ID="Grid" runat="server" AutoGenerateColumns="False" KeyFieldName="ID" ... >
    <Columns>
        <!-- ... -->
        <dx:GridViewDataColumn FieldName="TagIDs">
            <EditItemTemplate>
                <dx:ASPxGridLookup ID="Lookup" runat="server" AutoGenerateColumns="false" DataSourceID="LookupDataSource"
                    KeyFieldName="ID" SelectionMode="Multiple" OnInit="Lookup_Init" TextFormatString="{1}">
                    <Columns>
                        <dx:GridViewCommandColumn ShowSelectCheckbox="true" VisibleIndex="0" />
                        <!-- ... -->
                    </Columns>
                </dx:ASPxGridLookup>
            </EditItemTemplate>
        </dx:GridViewDataColumn>
    </Columns>
    <SettingsEditing EditFormColumnCount="1" Mode="PopupEditForm" PopupEditFormWidth="200" />
</dx:ASPxGridView>
protected void Lookup_Init(object sender, EventArgs e) {
    var lookup = (ASPxGridLookup)sender;
    var container = (GridViewEditItemTemplateContainer)lookup.NamingContainer;

    if (container.Grid.IsNewRowEditing)
        return;

    var tagIDs = (int[])container.Grid.GetRowValues(container.VisibleIndex, container.Column.FieldName);
    if(tagIDs != null) {
        foreach(var tagID in tagIDs)
            lookup.GridView.Selection.SelectRowByKey(tagID);
    }
}

private int[] GetTags() {
    var column = (GridViewDataColumn)Grid.Columns["TagIDs"];
    var lookup = (ASPxGridLookup)Grid.FindEditRowCellTemplateControl(column, "Lookup");
    var tags = lookup.GridView.GetSelectedFieldValues(lookup.KeyFieldName) as List<object>;

    return tags.Select(t => (int)t).ToArray();
}

Files to Review

Documentation

More Examples