使用onclick按钮和id在MVC视图中显示/隐藏特定的表行

时间:2013-11-12 12:12:09

标签: jquery asp.net-mvc-4 html-table hide show

如果我点击那里的编辑按钮,我想在我的表格中显示一行来编辑上面一行中的对象。 该表看起来像:

   <table id="Table">
                <thead>
                    <tr>
                        <th>@Html.Label("Name", "Name")</th>
                        <th>@Html.Label("ID", "ID")</th>
                            <th>@Html.Label("OtherFields", "Other fields")</th>
                        <th></th>
                        <th></th>
                    </tr>
                </thead>
                @for (int i = 0; i < Model.models.Count(); i++)
                {<tr>
                    @Html.Hidden("Name", @Model.Name)</td>
                    <td>@Html.Label("ID", @Model.ID)</td>
                    <td>@Html.Label("OtherFields", @Model.OtherFields)</td>
                     <td> <button type="button"name="ShowEditButton" value="@i" id="EditButton" onclick="ShowEdit(@i)">Edit</button>
                    </td>
                    <td>
                        <button name="deleteButton" value="@i" class="formbutton" id="DeleteButton" onclick="DoNotPrompt()">Delete</button></td>
                </tr>
                    <tr id="Details(@i)" style="display:none;">
                        <td colspan="4">..........</td>
                        <td>
                            <button name="acceptButton" value="@i" class="formbutton" id="AcceptButton" onclick="SaveEdit(@i)">Accept</button></td>
                    </tr> }
            </table>

我的jQuery方法是

        function ShowEdit(i) {
        $('#Details('+i+')').style.display = 'table-row';
    }

我还尝试将hidden:"hidden"用于行,并在Javascript中使用show()。 我也用调试器检查它,方法被调用,但它不会向我显示任何内容。在我的应用程序中,带有数据的行要大得多,导致几个一对多的关系和查找表,在显示它的行中编辑它会非常困惑。所以我想让用户有机会在信息下面的行中编辑它。然后AcceptButton会将其发送到服务器。有谁能够帮我?可能是我尝试做的不可能吗?

问题已解决:我必须从id中移除括号并将其替换为_以使其运行

1 个答案:

答案 0 :(得分:0)

不确定但您没有调用所需的功能:

  1. onclick="ShowEdit(@i)"
  2. onclick="DoNotPrompt()"
  3. onclick="SaveEdit(@i)"
  4. ,您的功能是"ShowMutationEdit()"

    function ShowMutationEdit(i) {
        $('#MutationDetails('+i+')').style.display = 'table-row';
    }
    

    刚刚看到您的更新:

    In my application the row with the data is much bigger 因此,您正在为每个按钮使用ID,因为它处于循环中,并且在id属性方面存在许多重复项。

    function ShowEdit(i) {
        $('#Details('+i+')')[0].style.display = 'table-row';
    }//---------------------^^^--------------------try adding this
    

    和此:

    function ShowEdit(i) {
        $('#Details('+i+')').show();
    }//---------------------^^^^^^^--------------------try adding this