У меня есть пользовательский элемент управления TextBox, предназначенный для приема значений валют. Я называю это CurrencyTextBox. Он отображается как , но проблема в том, что он мне нужен для отображения . Примечание. Если вам интересно, валюта не является стандартным типом, это пользовательский тип.
Вот пример кода. Все это прекрасно работает, кроме этой проблемы.
public class CurrencyTextBox : TextBox
{
protected override void OnPreRender(EventArgs e)
{
//I have some code in here to render client side scripts
}
protected override void Render(HtmlTextWriter writer)
{
writer.AddAttribute("onfocus", "__ctbFocus(this);");
writer.AddAttribute("onkeydown", "return __ctbKeyDown(this);");
writer.AddAttribute("onkeypress", "return __ctbKeyPress(this);");
writer.AddAttribute("onchange", "return __ctbChange(this)");
//I have more code here which adds several more attributes
base.Render(writer);
}
}
Я изо всех сил пытаюсь понять, как изменить атрибут "type" из отображаемой разметки. Я хочу изменить текст = "тип", чтобы сказать текст = "валюта".
Достаточно просто добавить атрибут, как в
writer.AddAttribute("text", "currency")
но он все равно отображает 'type = "text"'. Поэтому я попробовал следующее
Attributes.Remove("type");
но это не работает, просто ничего не делает.
Возможно, мне нужно использовать
protected override void RenderAttributes(HtmlTextWriter writer)
но я не могу точно определить, каким должен быть код или куда он должен идти.