在自定义 PropertyEditor 中使用时,ASPxComboBox 的回发不会在 DevExpress 中触发

PostBack of ASPxComboBox not firing in DevExpress when used in a custom PropertyEditor

我正在开发 DevExpress XAF 应用程序,我需要使用自定义 属性 编辑器定义业务对象的一个​​属性,以便使用从另一个填充的下拉列表显示它业务对象如下:

[ImmediatePostData(true)]
[ModelDefault("PropertyEditorType", "CollateralSaleTypePropertyEditor")]
[Size(140)]
public string COLLATERAL_SALE_TYPE
{
    get { return GetPropertyValue<String>("COLLATERAL_SALE_TYPE"); }
    set
    {
        SetPropertyValue("COLLATERAL_SALE_TYPE", value);
        // OnChanged("COLLATERAL_REPOSSESSION_DATE");
    }
}

此外,我已经定义了 CollateralSaleTypePropertyEditor 并将 AutoPostBack 设置为 true:_dropDownControl.AutoPostBack = true;

我面临的问题是 post 返回没有发生,SelectedIndexChanged 的服务器端事件没有被引发:

//Server side event that is not raised
_dropDownControl.SelectedIndexChanged += control_SelectedIndexChanged;
//Client side event that is raised                   
_dropDownControl.ClientSideEvents.SelectedIndexChanged = "function (sender, e) { e.processOnServer=false;}";

所以基本上每次我更改所选项目时都没有任何反应。我发现以下 link 解释了更新 here 的原因。但即使在我按照这些步骤操作之后,也没有任何反应。

我认为您的问题的解决方案很明显。问题出在这一行:

dropDownControl.ClientSideEvents.SelectedIndexChanged = 
                  "function (sender, e) { e.processOnServer=false;}";

由于您指定了 e.processOnServer=falseSelectedIndexChanged 事件在客户端生成,但不会到达服务器。

如果您希望 SelectedIndexChanged 到达服务器端,您需要完全删除客户端处理程序或将其更改为具有 e.processOnServer=true;.