【问题标题】:PostBack of ASPxComboBox not firing in DevExpress when used in a custom PropertyEditor在自定义 PropertyEditor 中使用时,ASPxComboBox 的 PostBack 在 DevExpress 中未触发
【发布时间】:2017-10-12 17:49:46
【问题描述】:

我正在开发 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;

我面临的问题是这个回帖没有发生,并且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;}";

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

【问题讨论】:

    标签: c# asp.net devexpress xaf


    【解决方案1】:

    我认为您的问题的解决方案是显而易见的。问题在于这一行:

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

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

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

    【讨论】:

    • 嘿,我解决了,是的,processedOnServer 属性必须设置为 true,这似乎是 DropDown 控件的问题。
    • @kejsiStruga 很高兴它有帮助!如果您接受答案,将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多