2011-06-15 4 views
0

У меня есть проблемы с ASPxGridLookup. Для того ASPxGridLookup в деталях мы создаем похожий кодASPxGridLookup: автоматический поиск значений из дочерних таблиц

<dx:ASPxGridView ID="gvTable" ClientInstanceName="grid" runat="server" DataSourceID="dataSource" 
     AutoGenerateColumns="false" Width="100%" KeyFieldName="ID"> 
     <Columns> 
      <dx:GridViewCommandColumn VisibleIndex="0"> 
       <EditButton Visible="true" /> 
      </dx:GridViewCommandColumn> 
      <dx:GridViewDataTextColumn FieldName="ID" Caption="ID" Name="ID"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataColumn FieldName="ItemID" VisibleIndex="2"> 
       <EditItemTemplate> 
        <dx:ASPxGridLookup ID="GridLookup" runat="server" SelectionMode="Single" DataSourceID="dataSource1" 
         KeyFieldName="ID" Width="250px" TextFormatString="{0}" MultiTextSeparator=", " Value='<%# Bind("ItemID") %>' 
         AutoGenerateColumns="true"> 
         <GridViewProperties> 
          <Settings ShowFilterRow="True" /> 
         </GridViewProperties> 
        </dx:ASPxGridLookup> 
       </EditItemTemplate> 
      </dx:GridViewDataColumn> 
      <dx:GridViewDataTextColumn FieldName="Title" Caption="Title" Name="Title"> 
      </dx:GridViewDataTextColumn> 
     </Columns> 
     <Settings ShowFilterRow="True" ShowFilterRowMenu="true" /> 
     <SettingsEditing PopupEditFormWidth="600px" /> 
    </dx:ASPxGridView> 
    <asp:SqlDataSource ID="dataSource" runat="server" ConnectionString="<%$ ConnectionStrings:connectionString%>" 
     SelectCommand="SELECT * FROM [Abbreviation]"></asp:SqlDataSource> 
    <asp:SqlDataSource ID="dataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:connectionString%>" 
     SelectCommand="SELECT * FROM [Item]"></asp:SqlDataSource> 

Для инициализации комбинированного окна мы используем следующий код

Value = ' <% # Bind ("ItemID") %>' 

У меня есть для создания таблицы и поиска динамически из программы.

общественный класс LookupTemplate: ITemplate { public ASPxGridLookup lookup {get; задавать; }

public LookupTemplate(ASPxGridLookup lookup) 
    { 
     this.lookup = lookup; 
    } 


    #region Implementation of ITemplate 

    public void InstantiateIn(Control container) 
    { 
     container.Controls.Add(lookup); 
    } 

    #endregion 
} 

Я генерирую таблицу, добавляю столбцы и в одну из них. Я должен добавить свой поиск.

GridViewDataColumn col = new GridViewDataColumn 
       { 
        FieldName = field.Name, 
        Caption = field.Caption, 
        Name = field.Name 
       }; 

    SqlDataSource sqlSource = new SqlDataSource("SELECT * FROM [Item]") 
     { 
      ID = "dataSource1"; 
     }; 


    dataSources.DataSources.Add(sqlSource); 

    ASPxGridLookup lookup = new ASPxGridLookup 
     { 
      SelectionMode = GridLookupSelectionMode.Single, 
       KeyFieldName = "ID", 
        AutoGenerateColumns = true 
     }; 
    lookup.GridViewProperties.Settings.ShowFilterRow = true; 
    lookup.TextFormatString = "{0}"; 
    lookup.Value = "Value='<%# Bind(\"ItemId\") %>'"; 

    LookupTemplate template = new LookupTemplate(lookup); 
    col.EditItemTemplate = template; 
    gvTable.Columns.Add(col); 

Когда пользователь нажимает на редактирование, я получаю событие после обратной связи. Я формирую все динамически снова, и я делаю разумные действия (я привожу все данные в viewstate, а затем беру оттуда) Но при открытии списка деталей поле со списком остается пустым (без значения поля из строки). Если я попытаюсь открыть поле со списком - я получаю нужный стол.

Как связать значение в ASPxGridLookup combo box?

ответ

0

Похоже, что вы задали тот же вопрос в потоке http://community.devexpress.com/forums/t/102088.aspx. Поскольку вы предоставляете образец проекта, я предлагаю вам отправить этот запрос в службу поддержки (потому что http://community.devexpress.com/forums/ - это форумы поддержки одноранговых пользователей для пользователей DX).

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