Как я могу записать HTML, отображаемый элементом управления в строку - PullRequest
3 голосов
/ 02 февраля 2012

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

Я пытался использовать RenderControl, но ни один из динамически заполненных элементов управления метками в пользовательском элементе управления не был заполнен.

    StringBuilder sb = new StringBuilder();
    StringWriter sw = new StringWriter(sb);
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    OrderDetails1.RenderControl(htw);
    return sb.ToString();

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

Кажется, что я должен быть в состоянии захватить содержимое элемента управления, когда он впервые отображается, так что мне не нужно повторно его заполнять и повторно отображать. Кто-нибудь знает как?

Если нет, каков самый чистый способ заполнения контроля?

1 Ответ

2 голосов
/ 02 февраля 2012

Оказывается, код RenderControl был правильным, мне просто нужно было вызвать функцию FillData () для управления, чтобы заполнить элементы управления из базы данных.

private string RenderOrderInfo()
{
    //TODO: Should be able to use RenderControl for this and delete everything beyond the 1st 3 lines
    StringBuilder sb = new StringBuilder();
    StringWriter sw = new StringWriter(sb);
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    OrderDetails1.FillData();
    OrderDetails1.RenderControl(htw);
    return sb.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...