如何在DevExpress MVC GridView控件中设置ConvertEmptyStringToNull?

时间:2013-08-16 23:59:37

标签: asp.net-mvc devexpress updatemodel

我认为我需要将一些ConvertEmptyStringToNull属性设置为false以消除将已经设置为空字符串的字段转换为空值的脑死UpdateModel行为,这会导致我的数据库更新失败,但我无法在DevExpress MVC Gridview中的任何地方找到这个属性。有谁知道如何找到它?

我已经尝试在Application_Start

中覆盖以下内容
ModelBinders.Binders.DefaultBinder = new DevExpress.Web.Mvc.DevExpressEditorsBinder();

并设置

bindingContext.ModelMetadata.ConvertEmptyStringToNull = false;

但那不起作用。

感谢您的任何想法!

1 个答案:

答案 0 :(得分:0)

以下内容适用于我的目的,因为我至少不必单独设置每个此类属性,但强烈认为默认情况下不应更改用户数据。我向DevExpress人员提出建议,应该有更简单的方法在字段,网格和全局级别覆盖此行为。这是我的临时解决方案:

    settings.DataBound = (sender, e) =>
    {
        // turn off brain dead conversion of user data empty strings to null
        var lGrid = sender as MVCxGridView;
        foreach (var lCol in lGrid.Columns)
        {
            if (lCol is GridViewDataColumn)
            {
                GridViewDataColumn lDataCol = lCol as GridViewDataColumn;
                TextBoxProperties tb = lDataCol.PropertiesEdit as TextBoxProperties;
                if (tb != null)
                    tb.ConvertEmptyStringToNull = false;
            }
        }
    };