【问题标题】:Grid Inline editing with JavaScript, weird behaviour使用 JavaScript 进行网格内联编辑,奇怪的行为
【发布时间】:2010-08-05 09:32:20
【问题描述】:

我制作了这个发票页面。 有一个生成表的中继器。 有发票项目描述进入用 div 标签封装的 td 标签 像这样:

<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);
    }

这是我第一次尝试这样做,并且在第一枪中就奏效了。它将行转换为文本框,其中设置了相同的文本。但是问题是当生成的文本框被点击(焦点)时,里面的文本消失了。

我还将感谢任何其他进行此内联编辑的最佳做法。然后我需要通过网络服务等更新项目。

提前致谢。

【问题讨论】:

    标签: javascript asp.net jquery ajax inline-editing


    【解决方案1】:

    是的,我的错!

    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');
            }
    
        }
    

    这很好! :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 2012-10-20
      相关资源
      最近更新 更多