0

データベース内のデータのタイプとアドレスのasp:listviewがあります。ボタンをクリックすると、ボタンのinnerhtmlを別のテキストに変更し、タイプとアドレスの対応する入力テキストボックスの無効な属性を削除する必要があります。ボタンをクリックすると、リストビューの最初の行の無効な属性が削除されますが、クリックしている行に対応する属性は削除されません。たとえば、リストビューの例とその機能を次に示します。

「/t/ t / t / t / t / t/t」と入力します住所

TxtBox TxtBoxTxtBoxTxtBox EditBtn DeleteBtn

TxtBox TxtBoxTxtBoxTxtBox EditBtn DeleteBtn / **たとえば、この編集ボタンをクリックすると、この行ではなく上のレコードから無効化が削除されます。

TxtBox TxtBoxTxtBoxTxtBox EditBtn DeleteBtn

<script type="text/javascript">
        function changeText(button) { 
            button.innerHTML="Save";              
            document.getElementById('Type').removeAttribute('disabled');
            document.getElementById('Address').removeAttribute('disabled');    
</script>

<body>  
  <div>Addresses</div>
   <br />   
        <div>
    <asp:ListView runat="server" ID="ListView1" >
    <EmptyDataTemplate>No records found.</EmptyDataTemplate>
        <LayoutTemplate>
            <table id="sort" style="border:solid 1px black;width:40%;">
                <thead>
                    <tr>
                        <th>
                            <a href="#">Type</a>
                        </th>
                        <th>
                            <a href="#">Address</a>
                        </th>

                    </tr>
                </thead>
                <tbody>
                    <tr id="itemPlaceholder" runat="server" />
                </tbody>
                <tfoot>
                </tfoot>
            </table>
        </LayoutTemplate>
        <ItemTemplate>
            <tr>
                <td>
                   <input size="8" type="text" ID="Type" disabled="disabled" value="<%# Eval("Type")%>" />
                </td>
                <td>
                   <input size="9" type="text" ID="Address" disabled="disabled" value="<%# Eval("street")%> <%# Eval("City")%> <%# Eval("State")%>" />                     
                </td>
                <td>
                   <button id="editBtn" type="button" onclick="changeText(this)">Edit</button> 
                </td>
            </tr>
        </ItemTemplate>
    </asp:ListView>
  </div>

4

1 に答える 1

0

ドキュメントではなく、現在の tr を取得します。

  function changeText(button) { 
        var row=button.parentNode.parentNode;
        button.innerHTML="Save";              
        row.querySelector('#Type').removeAttribute('disabled');
        row.querySelector('#Address').removeAttribute('disabled');
  }
于 2013-01-31T01:32:02.223 に答える