C# ASPxGridLookup:自动查找子表中的值

C# ASPxGridLookup:自动查找子表中的值,c#,asp.net,devexpress,C#,Asp.net,Devexpress,我在ASPxGridLookup方面遇到了一些问题。 为了添加ASPxGridLookup,我们在一个细节中创建了一个类似的代码 <dx:ASPxGridView ID="gvTable" ClientInstanceName="grid" runat="server" DataSourceID="dataSource" AutoGenerateColumns="false" Width="100%" KeyFieldName="ID"> <Co

我在
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>
我生成表,添加列,并在其中添加查找

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);
GridViewDataColumn col=新的GridViewDataColumn
{
FieldName=field.Name,
Caption=字段。Caption,
Name=field.Name
};
SqlDataSource sqlSource=新SqlDataSource(“从[项目]中选择*”)
{
ID=“数据源1”;
};
dataSources.dataSources.Add(sqlSource);
ASPxGridLookup lookup=新的ASPxGridLookup
{
SelectionMode=GridLookupSelectionMode.Single,
KeyFieldName=“ID”,
AutoGenerateColumns=true
};
lookup.GridViewProperties.Settings.ShowFilterRow=true;
lookup.TextFormatString=“{0}”;
lookup.Value=“Value=”;
LookupTemplate模板=新的LookupTemplate(查找);
col.EditItemTemplate=模板;
gvTable.Columns.Add(col);
当用户单击edit I get post back事件时。 我再次动态地形成所有表单,并执行正常操作(我将所有数据置于viewstate中,然后从中获取数据) 但在打开“详细信息”组合框时,该组合框仍然为空(没有一行中的字段值)。 如果我试图打开组合框-我收到了必要的表格


如何在
ASPxGridLookup
组合框中绑定值?

看起来您在线程中发布了相同的问题。由于您提供了一个示例项目,我建议您将此请求转发给支持团队(因为–是DX用户的对等支持论坛)

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