реализация runat в HtmlTextWriterAttribute - PullRequest
0 голосов
/ 04 января 2011

Привет, дорогие друзья, у меня есть пользовательский веб-элемент управления

эта функция визуализации класса окна </p> <pre><code> protected override void RenderContents(HtmlTextWriter wr) { wr.AddAttribute("runat", "server",true); wr.AddAttribute("id", this.UniqueID, false); wr.RenderBeginTag(HtmlTextWriterTag.Div); wr.RenderEndTag(); wr.WriteLine(); base.RenderContents(wr); }


Использование на веб-странице:

(cc1:Window ID="Window1" runat="server" ) (div) runat="server" id="aaaa"(/div)


Результат поиска в браузере:

(span id="Window1")(div runat="server" id="Window1") (/div) span) (div) id="aaaa"(/div)

Ответы [ 2 ]

1 голос
/ 04 января 2011

Вы никогда не задавали вопрос. В любом случае, я думаю, что вы хотите, чтобы ваш пользовательский элемент управления отображался как <div runat="server">.

public class Window : WebControl {
    public Window() : base(HtmlTextWriterTag.Div) {}

    protected override void AddAttributesToRender(HtmlTextWriter writer) {
        writer.AddAttribute(HtmlTextWriterAttribute.Id, UniqueID);
    }
}
  1. Вы должны вызвать конструктор в WebControl, который принимает HtmlTextWriterTag.
  2. Вы должны переопределить AddAttributesToRender (вместо RenderContents), чтобы добавить атрибуты к вашему элементу.
  3. runat="server" используется только при разборе вашего HTML-кода и не используется в ваших элементах управления.
0 голосов
/ 04 января 2011

Я не уверен, что ваш пример использования - это просто опечатка и ошибки форматирования при публикации, или это действительно так, как вы его используете (кроме того, я понимаю, что вы опубликовали <...> как (...), чтоне моя проблема здесь).


Вы должны начать с реализации своего класса управления как , предложенного Симоном Свенссоном .

Затем, если вы хотитеваш div с id = "aaaa" будет html-тегом внутри вашего тега div управления, вы должны использовать его следующим образом (обратите внимание на окончание </cc1:Window>):

Использовать на веб-странице:

<cc1:Window ID="Window1" runat="server">
  <div id="aaaa">Text content here</div>
</cc1:Window>

Исходный код браузера:

<div id="Window1">
  <div id="aaaa">Text content here</div>
</div>

Как сказал Саймон, runat="server" в основном используется для серверных элементов управления и не имеет значения для отображаемых элементов управления HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...