Следуя руководству, направленному на создание видеопроигрывателя, я адаптировал его для создания диапазона управления HTML5. Вот мой код:Пользовательский серверный контроль устанавливает свойства по умолчанию при обратной передаче
namespace CustomServerControls
{
[DefaultProperty("Text")]
[ToolboxData("<{0}:Range runat=server ID=Range1></{0}:Range>")]
public class Range : WebControl
{
public int Min { get; set; }
public int Max { get; set; }
public int Step { get; set; }
public int Value { get; set; }
protected override void RenderContents(HtmlTextWriter output)
{
output.AddAttribute(HtmlTextWriterAttribute.Id, this.ID);
output.AddAttribute(HtmlTextWriterAttribute.Width, this.Width.ToString());
output.AddAttribute(HtmlTextWriterAttribute.Height, this.Height.ToString());
if (Min > Max)
throw new ArgumentOutOfRangeException("Min", "The Min value cannot be greater than the Max Value.");
if (Value > Max || Value < Min)
throw new ArgumentOutOfRangeException("Value", Value,
"The Value attribute can not be less than the Min value or greater than the Max value");
if (Min != 0)
output.AddAttribute("min", Min.ToString());
if (Max != 0)
output.AddAttribute("max", Max.ToString());
if (Step != 0)
output.AddAttribute("step", Step.ToString());
output.AddAttribute("value", Value.ToString());
output.AddAttribute("type", "range");
output.RenderBeginTag("input");
output.RenderEndTag();
base.RenderContents(output);
}
}
}
Как вы можете видеть, очень просто, и это работает, насколько возможность устанавливать индивидуальные свойства.
Если я сделаю сообщение, чтобы проверить, что такое текущее значение, элемент управления возвращает его свойства по умолчанию (0). Я предполагаю, что это вопрос в представлении. Кто-нибудь видит что-либо, чего я не вижу в приведенном выше коде, чтобы сделать это правильно?
Edit:
Я заметил это разметка визуализируется на странице:
<span id="Range1" style="display:inline-block;">
<input id="Range1" min="1" max="100" value="5" type="range">
</span>
который, очевидно, не так, я не хочу поверочного тег создан, и Безразлично контроля ввода У меня есть имя. Поэтому, когда я возвращаю сообщение, я не получаю никаких данных от элемента управления.
Это работает! Спасибо. –
Можете ли вы показать мне или связать меня с веб-сайтом, объяснив, как я буду использовать автоматический пост для этого элемента управления? Я искал и не нашел то, что искал. –
@Nick, Обновлено! –