검도 표가 있으며 그 안에 클라이언트 템플리트를 사용하여 렌더링되는 확인란이 있습니다. 확인란을 선택한 경우 옆에있는 열을 활성화하고 선택하지 않으면 열을 사용하지 않아야합니다. 즉 사용자는 열을 편집하거나 입력 할 수 없어야합니다. 그리드에 편집 이벤트를 바인딩하여이 작업을 시도했지만 그리드가 편집 모드로 전환되고 그리드를 변경하는 동안 함수가 호출되지 않은 경우에만 편집 이벤트가 호출됩니다. 모든 지침은 대단히 감사하겠습니다.다른 열 값을 기반으로 검도 표 열을 활성화 또는 비활성화합니다.
코드 :
debugger;
function OnGridChange(e) {
console.log("grid edit mode",e);
var model = $("#AppAccountInternalGrid").data("kendoGrid");
console.log("data source edit mode");
if (e.model.Roll == "true")
$(e.container).find('input[name="RollupName"]').attr("disabled", false);
else
$(e.container).find('input[name="RollupName"]').attr("disabled", true);
}
@(Html.Kendo().Grid(Model.App_Client_Mapping)
.Name("AppAccountInternalGrid")
.Events(ev=>ev.Edit("OnGridChange"))
.Columns(columns =>
{
columns.Bound(p => p.AccountMappingID).Hidden().Title("AccountMappingID").Width(130);
columns.Bound(p => p.ExternalAccount).Title("ExternalAccount").Width(150);
columns.Bound(p => p.Roll).ClientTemplate("<input onchange='OnGridChange(#=AccountMappingID#)' type='checkbox' " +
"#=Roll? 'checked=checked' : '' #" +
"disabled='disabled' </input>").Width(150);
columns.Bound(p => p.RollupName).Title("RollupName").Width(150).HtmlAttributes(new{@class="disabled"});
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(150);
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.ColumnMenu()
.DataSource(dataSource => dataSource
.Ajax()
//.Events(ev=>ev.("OnGridChange"))
.PageSize(50)
.Model(model =>
{
model.Id(p => p.AccountMappingID);
}
)
.Update(update => update.Action("Editing_Update", "AppAccounts", new { clientid = @clientid }))
)
)
롤이 체크 박스로 렌더링 모델에 부울 속성입니다. 처음에는 확인란이 선택되지 않으므로 사용자가 롤업 이름을 편집 할 수 없습니다. 그러나 사용자가 편집 모드로 들어가서 체크 박스를 선택한 경우 사용자는 롤 이름을 편집 할 수 있어야합니다. 기본적으로 롤업 이름을 사용하지 않도록 설정합니다. 이 확인란을 선택하면 활성화되어야합니다.
jquery를 사용하여이 작업을 수행 할 수 있습니다. – Keith
@keith : 저는 자바 스크립트를 사용하고 있습니다. – newbie