使用JavaScript进行网格内联编辑,行为怪异
我做了这张发票。 有一个生成表的中继器。 有发票项目描述进入用div标记封装的td标记中 像这样:使用JavaScript进行网格内联编辑,行为怪异,javascript,asp.net,jquery,ajax,inline-editing,Javascript,Asp.net,Jquery,Ajax,Inline Editing,我做了这张发票。 有一个生成表的中继器。 有发票项目描述进入用div标记封装的td标记中 像这样: <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td class="griditem text"> <div class="invoiceDescript
<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>
这是我第一次尝试做这样的事情,第一枪就成功了。它将行转换为文本框,并在其中设置相同的文本。但问题是,当单击生成的文本框时,其中的文本将消失
我也将感谢任何其他的最佳实践来做这个内联编辑。然后我需要通过Web服务等更新项目
提前谢谢。是的,我的错
function InvoiceItemClicked(elm) {
var b = $(elm).hasClass('invoiceDescriptionEditing');
if(!b)
{
var textbox = document.createElement('input');
textbox.setAttribute('type', 'text');
textbox.setAttribute('id', 'txt');
$(textbox).css('width', '550px');
textbox.value = $(elm).text();
$(elm).html(textbox);
$(elm).removeClass('invoiceDescriptionEditable');
$(elm).addClass('invoiceDescriptionEditing');
}
}
这是爱!:
function InvoiceItemClicked(elm) {
var b = $(elm).hasClass('invoiceDescriptionEditing');
if(!b)
{
var textbox = document.createElement('input');
textbox.setAttribute('type', 'text');
textbox.setAttribute('id', 'txt');
$(textbox).css('width', '550px');
textbox.value = $(elm).text();
$(elm).html(textbox);
$(elm).removeClass('invoiceDescriptionEditable');
$(elm).addClass('invoiceDescriptionEditing');
}
}