次のEditorTemplateは、希望どおりに機能しません。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SHP.Models.BusinessUnitSelected>" %>
<tr>
<td><%: Model.BusinessUnit.BusinessUnitName %></td>
<td><%: Html.CheckBoxFor(model => model.Selected,
new { onclick = "SaveSelection(" + Model.EmployeeId + ", " + Model.BusinessUnit.BusinessUnitId + ", " + Convert.ToInt32(Model.Selected) + ", " + this.ClientID + ")" }) %>
</td>
</tr>
チェックボックスのIDを取得したいのですが、this.ClientIDで取得できません。このEditorTemplateは、テーブル内に行のグリッドを形成します。チェックボックスをクリックすると、SaveSelectionjavascriptが実行されます。
function SaveSelection(employeeId, businessUnitId, selectedFlag, elementId) {
//var tempFlag = selectedFlag === "0";
var element = document.getElementById(elementId);
if (selectedFlag === null) {
selectedFlag = true;
} else {
selectedFlag = !selectedFlag;
}
var url = '<%: Url.Action("AddBusinessUnitForEmployee", "DataService")%>';
dataService.saveSelection(employeeId, businessUnitId, selectedFlag, elementId, SavedSetting, url);
}
SavedSetting = function(data) {
$('#' + data.ElementId).after('<span class="error">' + data.Message + '</span>');
};
私が欲しいのは、サーバー呼び出しの後にチェックボックスの横にメッセージを表示することです。では、どうすればこれを行うことができますか?Upticksは、このコードを改善する方法についてのアドバイスに対して授与されます。