HTML-шаблон для управления ASP - PullRequest
0 голосов
/ 22 апреля 2009

Я пишу приложение, которое требует, чтобы мой клиент мог разметить свои формы ввода любым удобным для них способом.

Я хотел бы использовать шаблон HTML с заполнителями, а затем заменить их на защищенные элементы управления .NET во время выполнения:

<table style="width: 100%;">
<tr>
    <td colspan="2">
        <fieldset title="Customers Template" >
            <table style="width:100%;">
                <tr>
                    <td width="140">
                        Policy Number:</td>
                    <td width="150">
                        $$Policy Number$$</td>
                    <td colspan="2" rowspan="3" valign="top">
                        Type 1:<br />
                        $$Type 1$$</td>
                    <td rowspan="3" valign="top">
                        Info:<br />
                        $$Info$$</td>
                    <td rowspan="3" valign="top">
                        Problems:<br />
                        $$Problems$$</td>
                </tr>...

Поэтому я хочу найти и заменить свой текст $$ xxx $$ различными элементами управления .NET в зависимости от типа данных добавляемого поля во время выполнения.

Есть предложения о том, как подойти к этому?

Спасибо, Mark

Ответы [ 2 ]

1 голос
/ 22 апреля 2009

Замените свои блоки $$ xxx $$ элементами управления <asp:PlaceHolder>.

Во время выполнения вы можете разобрать шаблон

--- В самом простом случае вы можете требовать, чтобы шаблон был действительным xhtml, тогда вы можете просто использовать API .NET XML для перебора всех дочерних узлов XmlDocument. Из каждого элемента соберите соответствующий элемент управления ASP.NET Server.

Более сложный (и полный анализатор HTML) см. http://www.developer.com/net/csharp/article.php/2230091

Когда вы анализируете, везде, где вы видите <asp:PlaceHolder> - замените это вашей логикой, которая определяет ваш шаблон.

Учебник: http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=752

0 голосов
/ 23 апреля 2009

Если вы собираетесь заменить эти заполнители только строками, взгляните на Шаблонный движок NVelocity . В этом ответе я просто покажу, как создать письмо по шаблону.

Но для серверных элементов управления asp.net вы можете разбить свой HTML-шаблон на куски и добавить их на свою страницу в виде LiteralControl следующим образом:

Page.Controls.Add(new LiteralControl(@"<td width='140'>
                        Policy Number:</td>
                    <td width='150'>"));
Page.Controls.Add(textBox1);
Page.Controls.Add(new LiteralControl(@"</td><td colspan='2' rowspan='3' valign='top'>
                        Type 1:<br />"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...