1

以下は、機能するエディター テンプレートですが、改善する必要があります。具体的には、チェックボックスには、javascript 関数を呼び出す onclick イベントがあります。

AdministratorFlagClickFunc(employeeId)

代わりに、スクリプトで click() イベントを指定する必要があります。ただし、テンプレートがグリッドの一部であり、すべての行のチェックボックスの ID と関連するパラメーターを識別する必要がある場合、これを行うにはどうすればよいですか?

@model UserLineViewModel
<tr>
    <td>
        @Html.DisplayFor(x => x.Employee.Forename)
    </td>
    <td>
        @Html.DisplayFor(x => x.Employee.Surname)
    </td>
    <td>
        @Html.DisplayFor(x => x.UserScd.Created)
    </td>
    <td style="text-align: center;">
        @Html.CheckBoxFor(x => x.UserScd.AdminFlag,
                    new { id = "checkBoxAdministratorFlag", 
                        onclick = "AdministratorFlagClickFunc(" + Model.UserScd.EmployeeId + ")" })
    </td>
    <td>
        @Ajax.ActionLink("Remove", "Delete", new { id=Model.UserScd.EmployeeId  }, new AjaxOptions()
                { 
                    OnSuccess="refreshPostback"   
                    , Confirm="Are you sure that you want to remove this person?"
                    , HttpMethod = "post"
                })
    </td>
</tr>
4

1 に答える 1

0

問題は、クリックハンドラーをマークアップからスクリプトに移動したいということですか?cssクラス(ページごとに一意である必要があるためidではない)を介してハンドラーをアタッチし、非表示の要素を介してempidを取得できます。

マークアップ:

<td style="text-align: center;">@Html.CheckBoxFor(x => x.UserScd.AdminFlag, new { class = "checkBoxAdministratorFlag"})@Html.HiddenFor(Model.UserScd.EmployeeId) </td>

脚本:

$('.checkboxAdministratorFlag').click(function() {

    var empId = $(this).next('input').val();
    //....

});
于 2013-02-05T15:14:21.167 に答える