Я сделал эту страницу счета.
Существует повторитель, который генерирует таблицу.
В теги td входят описания элементов счета, инкапсулированные тегами div
как это:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td class="griditem text">
<div class="invoiceDescription" id='<%# "item-" + Eval("ID") %>' value='<%# Eval("ID") %>' onclick="InvoiceItemClicked(this);">
<%# Eval("Description") %>
</div>
</td>
<td class="gridnumb text r">
<%# String.Format("{0:n}", Eval("Quantity"))%>
</td>
<td class="gridnumb text r">
<%# String.Format("{0:c}", Eval("UnitCost"))%>
</td>
<td class="gridnumb text r">
<%# String.Format("{0:c}", Eval("Total"))%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
Если вы видите первую строку, я вызываю javascript onclick. Функция выглядит следующим образом (использует jQuery):
function InvoiceItemClicked(elm) {
var textbox = document.createElement('input');
textbox.setAttribute('type', 'text');
textbox.value = $(elm).text();
$(elm).html(textbox);
}
Это первый раз, когда я пытаюсь сделать что-то подобное, и это сработало в первом кадре. Он преобразует строки в текстовые поля с одинаковым набором текста в них. Но проблема в том, что при нажатии на текстовое поле (фокус) текст внутри него исчезает.
Я также буду признателен за любые другие лучшие практики для этого встроенного редактирования. Мне нужно обновить элементы через веб-сервисы и т. Д.
Заранее спасибо.