为什么我的派生服务器控件呈现其DataFormatString而不是格式化数据值?

时间:2011-08-26 15:58:18

标签: asp.net data-binding servercontrols

我的控件来自 BoundField ,在 GridView 中使用,如代码下方的标记。我的问题是控件呈现它的 DataFormatString 的文字值,而不是它的数据值的格式化表示。

public class BoundReportField : BoundField
{
    public override string DataFormatString
    {
        get
        {
            var baseString = base.DataFormatString;
            if (!string.IsNullOrWhiteSpace(baseString))
            {
                return FormatStrings.Currency;
            }
            return baseString;
        }
        set
        {
            base.DataFormatString = value;
        }
    }

    protected override string FormatDataValue(object dataValue, bool encode)
    {
        var val = base.FormatDataValue(dataValue, encode);
        return val;
    }
}

<avm:BoundReportField DataField="BOND_AMOUNT" DataFormatString="R #\,###\,###" />

2 个答案:

答案 0 :(得分:2)

尝试在您的标记中执行此操作:

DataFormatString="{0:R #\,###\,###}"

修改
删除了额外的报价

答案 1 :(得分:1)

抱歉我的其他错误,我相信您的格式字符串需要遵循这种格式DataFormatString =“{0:D6}”所以将其更改为“{0:R#\,### \,## #}“