我的项目中有3个嵌套的ASPxGridViews。一个是主网格,另一个是与主/外键连接的详细网格。当我单击详细信息网格中的新按钮时,表单中的列完全空白。但我想要一些自动选择ParentID的列,因为我已经在其主网格中选择了它。这是一个具体的例子:
我有一个显示公司的主网格。该网格有一个详细网格,显示属于这些公司的部门。我选择了其中一个公司和部门,它们出现在细节网格中。然后我按下了新按钮来创建一个新的部门数据。但在表单中,公司组合框列是空白的,应该自动选择。我必须再次在这个组合框中选择同一家公司。
我在DevExpress论坛中找不到有关此问题的任何内容。如果你帮忙,我感激不尽。
答案 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
。您可以在详细网格中的HtmlRowCreated
或CellEditorInitialize
事件中使用此功能来获取主密钥字段(您的公司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;
}
}