MaskedEditValidator DisplayMoney未显示在Composite Control中

时间:2009-02-01 01:06:00

标签: c# asp.net ajax composite-controls

我正在创建一个具有AJAX功能的简单复合控件。尝试实现MaskedEditValidator时,DisplayMoney属性不起作用。 MaskedEdit呈现,没有附加美元符号。有任何想法吗?这是我的代码:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    priceTextbox.ID = this.ID + "_price";
    quantityTextbox.ID = this.ID + "_quantity";
    timeTextbox.ID = this.ID + "_time";
    submitButton.ID = this.ID + "_submit";
    submitButton.Text = "Submit";
    priceMask.TargetControlID = priceTextbox.ClientID.ToString();
    priceMask.ID = priceMask.TargetControlID.ToString() + "_extender";
    priceMask.BehaviorID = "priceMaskExtender";
    priceMask.Mask = "99.99";
    priceMask.DisplayMoney = MaskedEditShowSymbol.Left;

}

2 个答案:

答案 0 :(得分:1)

尝试添加以下行:

priceMask.MaskType = MaskedEditType.Number;

(可选)将ClearMaskOnLostFocus设置为false,如果这是您想要的行为(即使没有聚焦,它也会保留美元符号)。

如果MaskType等于MaskedEditType.Number,则DisplayMoney属性设置器仅设置属性。

set
{
   if (MaskType == MaskedEditType.Number)
   {
     SetPropertyValue("DisplayMoney", value);
   }
}

答案 1 :(得分:1)

如果MaskType等于 MaskedEditType.Number ,则DisplayMoney属性设置器仅设置属性。

set
{
   if (MaskType == MaskedEditType.Number)
   {
     SetPropertyValue("DisplayMoney", value);
   }
}

所以你需要设置:

priceMask.MaskType = MaskedEditType.Number;