次のコードでデータ属性 (data-scd-editUrl) の値を取得できません。
@foreach (var item in Model)
{
<tr data-pkey="@item.TradeId">
<td style="text-align:left;vertical-align:top;height:20px;">
<div style="width:100%;height:100%;overflow:hidden;">
@Html.DisplayFor(modelItem => item.TradeName)
</div>
</td>
<td class="rowControl hidden" style="text-align:left;vertical-align:top;height:20px;">
<div style="width:100%;height:100%;overflow:hidden;">
<img src="@Url.Content("~/Images/Pencil.ico")" style="height:15px;width:15px" title="edit" alt="edit" class="makeRowEditable"
data-scd-editUrl="@Url.Action("Edit", new { id = item.TradeId})"/> |
<img src="@Url.Content("~/Images/icon-delete.gif")" style="height:15px;width:15px" title="delete" alt="delete" class="deleteRow"
data-scd-editUrl="@Url.Action("Delete", new { id = item.TradeId})"/>
</div>
</td>
</tr>
}
Jquery は次のとおりです。
gridContext.delegate('.makeRowEditable', 'click', function (e) {
var editUrl = $('this').data("scd-editUrl");
var row = $(this).parents('tr');
makeRowEditable(row, editUrl);
e.preventDefault();
});
このコードはグリッドの行であり、Ajax を介して新しいページ用に動的にリロードされるため、デリゲートが使用されます。上記のコードにブレークポイントを設定すると、editUrl が null になります。なぜでしょうか?