У меня есть серверный элемент управления, который отображается как < Тип ввода = «Что-то» > или или textarea >. Код сам за себя:Серверные элементы управления ASP.net, представленные как HTML TextArea
public string Namespace
{
get { return nspace; }
set { nspace = value; }
}
public string Model
{
get { return model; }
set { model = value; }
}
public string Text
{
get { return text; }
set { text = value; }
}
public string TextMode
{
get { return textMode; }
set { textMode = value; }
}
public string _Type
{
get { return type; }
set { type = value; }
}
public string Property { get; set; }
protected override void RenderContents(HtmlTextWriter output)
{
output.AddAttribute(HtmlTextWriterAttribute.Id, Property.ToLower());
output.AddAttribute(HtmlTextWriterAttribute.Name, Property.ToLower());
output.AddAttribute(HtmlTextWriterAttribute.Type, _Type);
if(!String.IsNullOrEmpty(Text))
output.AddAttribute(HtmlTextWriterAttribute.Value, Text);
Type modelType = Type.GetType(string.Format("{0}.{1}", Namespace, Model));
PropertyInfo propInfo = modelType.GetProperty(Property);
var attr = propInfo.GetCustomAttribute<RequiredAttribute>(false);
if (attr != null)
{
output.AddAttribute("data-val", "true");
output.AddAttribute("data-val-required", attr.ErrorMessage);
}
//forces styles to be added to the control
this.AddAttributesToRender(output);
if (!String.IsNullOrEmpty(TextMode))
{
output.RenderBeginTag("textarea");
output.RenderEndTag();
}
else
{
output.RenderBeginTag("input");
output.RenderEndTag();
}
}
Этого контроль направлен на получение сообщений об ошибках валидации от модели данных (вместо предоставления «данные-VAL» и «данные-валин-требуется» каждому текстового поля). с помощью этого кода легко:
<ServerControlTag:ControlName Property="aProp" runat="Server" Model="MyModel" ID="txtSomething" />
Который оказывает как тип ввода = текст тега, а следующее делает как TEXTAREA тег:
<ServerControlTag:ControlName Property="Description" runat="Server" Model="MyModel" TextMode="MultiLine" ID="txtDescription" class="message" />
Моя проблема при рендеринге текстовое поле, я не могу найти какой-либо атрибут для заполнения текста textarrea. Для того, чтобы установить текст в текстовом поле, я только что нашел следующий синтаксис:
<textarea ... > My Text Here </textarea>
еще, я не знаю, как реализовать это в моем управлении сервером. Я не знаю, даже если я на правильном пути.