Привет всем, наткнулся на проблему, никак не могу решить.
Ситуация такая:
Есть несколько HTML страниц, на некоторых из них присутствует одинаковая таблица (данные в ней так же общие).
При переходе на другую страницу приходится заново заполнять эту таблицу, что не есть хорошо (строки содержат дополнительные элементы, модифицируемые при создании в зависимости от данных).
Решил грузить один раз эту таблицу и вставлять в нужные страницы. Для этого наследовался от dom::element и добавил функции создания и вставки:
//Первая страница создает list из html - ресурса
void Create(HELEMENT hContainer)
{
htmlayout::dom::element container = hContainer; //<div> куда вставляем таблицу
PBYTE pb;
DWORD cb;
if (GetHtmlResource(L"list", pb, cb, _Module.GetModuleInstance()))
{
container.set_html(pb, cb, SIH_INSERT_AT_START);
HELEMENT list = container.get_element_by_id(L"list");
set(list);
//сохраним шаблон для строки
htmlayout::dom::element field = child(1);
htmlayout::dom::element row = field.child(0);
row_template = row.clone();
row.destroy();
}
}
//Следующие таблицы передают элемент, в который нужно вставить уже созданную таблицу
void Attach(HELEMENT hContainer)
{
htmlayout::dom::element container = hContainer; //<div> куда вставляем таблицу
container.append(*this);
}
HTML таблицы:
<table id="list">
<thead>
<tr>
<th><strong>Col 1</strong></th>
<th><strong>Col 2</strong></th>
<th><strong>Col 3</strong></th>
<th><strong>Col 4</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>User 1</td>
<td>Russia</td>
<td>
<select class="actionList" type="select-dropdown">
<caption>3</caption>
<div buttons>
<widget type="button" role="dropdown"></widget>
</div>
<popup id="popup">
<option value="0">do somethink</option>
<option value="1">do somethink</option>
<option value="2">do somethink</option>
</popup>
</select>
</td>
<td>comment</td>
</tr>
</tbody>
</table>
Проблема в следующем:
Таблица грузится, элементы добавляются, все хорошо, но при переходе на другую страницу содержимое таблицы либо вообще пропадает, либо элементов становится меньше (от случая к случаю).
Страницы грузятся view с помощью
if(GetHtmlResource(name.c_str(), pb, cb, hInst))
{
m_curHandler->Hide();
HTMLayoutLoadHtml(this->m_hWnd, pb, cb);
m_curHandler = pH;
m_curHandler->Show(); //здесь вызывается Attach() для таблицы, либо Create для первой страницы.
return TRUE;
}
Не знаете в чем может быть проблема? Или как сделать общий элемент для всех страниц?