MaskedEditValidator DisplayMoney не отображается в Composite Control
Я создаю простой составной элемент управления с функциональностью 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 ответа
Решение
Попробуйте добавить следующую строку:
priceMask.MaskType = MaskedEditType.Number;
При желании, установите ClearMaskOnLostFocus в false, если это поведение, которое вы хотите (он сохраняет знак доллара, даже когда не сфокусирован).
Установщик свойства DisplayMoney устанавливает свойство только в том случае, если MaskType равен MaskedEditType.Number.
set
{
if (MaskType == MaskedEditType.Number)
{
SetPropertyValue("DisplayMoney", value);
}
}
Установщик свойства DisplayMoney устанавливает свойство только в том случае, если MaskType равен MaskedEditType.Number.
set
{
if (MaskType == MaskedEditType.Number)
{
SetPropertyValue("DisplayMoney", value);
}
}
Так что вам нужно установить:
priceMask.MaskType = MaskedEditType.Number;