Я написал этот класс, чтобы преодолеть проблему, которую я имел с выбором опции в списке выбора html. Я надеюсь, что это кому-то поможет.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
namespace Login_page.Models
{
public class HTMLSelect
{
public string id { get; set; }
public IEnumerable<string> @class { get; set; }
public string name { get; set; }
public Boolean required { get; set; }
public string size { get; set; }
public IEnumerable<SelectOption> SelectOptions { get; set; }
public HTMLSelect(IEnumerable<SelectOption> options)
{
}
public HTMLSelect(string id, string name)
{
this.id = id;
this.name = name;
}
public HTMLSelect(string id, string name, bool required, IEnumerable<SelectOption> options)
{
this.id = id;
this.name = name;
this.required = required;
}
private string BuildOpeningTag()
{
StringBuilder text = new StringBuilder();
text.Append("<select");
text.Append(this.id != null ? " id=" + '"' + this.id + '"' : "");
text.Append(this.name != null ? " name=" + '"' + this.name + '"' : "");
text.Append(">");
return text.ToString();
}
public string GenerateSelect(IEnumerable<SelectOption> options)
{
StringBuilder selectElement = new StringBuilder();
selectElement.Append(this.BuildOpeningTag());
foreach (SelectOption option in options)
{
StringBuilder text = new StringBuilder();
text.Append("\t");
text.Append("<option value=" + '"' + option.Value + '"');
text.Append(option.Selected != false ? " selected=" + '"' + "selected" + '"' + ">" : ">");
text.Append(option.Text);
text.Append("</option>");
selectElement.Append(text.ToString());
}
selectElement.Append("</select");
return selectElement.ToString();
}
}
public class SelectOption
{
public string Text { get; set; }
public Boolean Selected { get; set; }
public string Value { get; set; }
}
}
И
public IEnumerable<SelectOption> getOrderTypes()
{
List<SelectOption> orderTypes = new List<SelectOption>();
if (this.orderType == "OptionText")
{
orderTypes.Add(new SelectOption() { Value = "1", Text = "OptionText", Selected = true });
} else
{
orderTypes.Add(new SelectOption() { Value = "2", Text = "OptionText2" });
}
}
И использовать его:
@{
Login_page.Models.HTMLSelect selectElement = new Login_page.Models.HTMLSelect("order-types", "order-types");
}
@Html.Raw(selectElement.GenerateSelect(Model.getOrderTypes()));
Xopus является коммерческим XML-редактором, специально разработанным, чтобы использоваться нетехническими людьми. Xopus на базе браузера и может быть установлен на любом веб-сервере. Xopus сохраняет XML-документ 100% допустимый в любом случае XML-схема использования и имеет представление WYSIWYG с помощью XSLT.
Вы могли использовать API DOM для конфигурирования его так, чтобы только текст мог быть изменен, не структура.
Прямая ссылка на демонстрацию.
Жидкие XML имеют хорошую бесплатную версию
обновление: (с 10 марта 2010) кажется, что редактор больше не свободен
По моему скромному мнению, BXE - WYSIWYG XML-редактор может сделать это - т.е. создавать/редактировать XML-документ в браузере, на основе существующей XML-схемы. Я не уверен, но, вероятно, необходимо включать его в собственную страницу, это - просто компонент редактора, не полное веб-приложение.
Это зависит от того, под чем Вы подразумеваете "удобный для пользователя", и что Вы хотите из текстового редактора. Я лично использую emacs для редактирования xml, но я готов выносить кривую обучения редактора для мощи, которую это дает мне - редактирующий XML, является теперь довольно легким и безболезненным для меня, но это взяло меня немного для получения его к той точке.
кислород похож на него, мог бы соответствовать тому, что Вы хотите, но это не свободно.
Эта страница имеет хорошее сравнение XML-редакторов и там функций, походит на хорошую начальную точку.
Проверьте Microsoft для Блокнота 2007 XML. Я не к любящему из него, так как это действительно рассматривает xml как дерево в противоположность простому тексту, но именно это Вы хотите, правильно?
Мне лично нравится Блокнот ++ с плагином XMLTools. Это, к сожалению, позволит Вам редактировать структуру.
XML-редактор свободен (тогда как различные преобразователи FO не), и можно использовать его с ЩЕГОЛЕМ (из проекта Apache). Emacs с psgml модулем может сделать это наряду с энергией, но обоими, вероятно, более низкими-lovel). Eclipse может сделать это также, но iut довольно тяжел.
Я не думаю, что существует веб-приложение, которое позволяет Вам писать документ экземпляра на основе загруженной схемы (пока еще.. mebbe я должен записать тот? :)).
XMLSpy Altova является в значительной степени лучшим из редакторов, которых я использовал, но очень дорогой.
Дайте энергии попытку с подходящим плагином (http://www.vim.org/scripts/script.php?script_id=301).
/Allan
Что относительно Eclipse с Кислородным плагином, который был бы моей рекомендацией, бесплатным открытым исходным кодом и очень широко используемый. Altova Шпион XML является большим инструментом, но дорогой, они раньше делали свободный некоммерческий выпуск использования, но это не появляется на их веб-сайте теперь поэтому, возможно, они прекратили это.