ASPxGridView中自动选择的列

时间:2011-06-16 14:40:00

标签: devexpress selected aspxgridview

我的项目中有3个嵌套的ASPxGridViews。一个是主网格,另一个是与主/外键连接的详细网格。当我单击详细信息网格中的新按钮时,表单中的列完全空白。但我想要一些自动选择ParentID的列,因为我已经在其主网格中选择了它。这是一个具体的例子:

我有一个显示公司的主网格。该网格有一个详细网格,显示属于这些公司的部门。我选择了其中一个公司和部门,它们出现在细节网格中。然后我按下了新按钮来创建一个新的部门数据。但在表单中,公司组合框列是空白的,应该自动选择。我必须再次在这个组合框中选择同一家公司。

我在DevExpress论坛中找不到有关此问题的任何内容。如果你帮忙,我感激不尽。

1 个答案:

答案 0 :(得分:1)

更新:使用CellEditorInitialize显示:

protected void gvDepartments_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
{
    var grid = sender as ASPxGridView;

    if (grid == null || !grid.IsNewRowEditing)return;
    if (!e.Column.FieldName.Equals("Company")) return;

    (e.Editor as ASPxComboBox).SelectedValue =  grid.GetMasterRowKeyValue();
}

详细网格上的

gridView.GetMasterRowKeyValue()为您提供了主网格KeyValue。您可以在详细网格中的HtmlRowCreatedCellEditorInitialize事件中使用此功能来获取主密钥字段(您的公司ID),并选择编辑表单中的组合框,如下所示:

protected void gvDepartments_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
    if (e.RowType == GridViewRowType.EditForm)
    {
        var gridView = sender as ASPxGridView;
        var companyID = gridView.GetMasterRowKeyValue();
        var ddlCompany = gridView.FindEditFormTemplateControl("ddlCompany") as ASPxComboBox;
        ddlCOmpany.SelectedValue = companyID;
    }
}