그리드 셀 클릭 오류 등 수정

This commit is contained in:
2026-03-05 16:57:19 +09:00
parent 2081495a62
commit acd76ee2d2
2 changed files with 49 additions and 20 deletions

View File

@@ -181,6 +181,8 @@ function fn_select2Editor(cell, onRendered, success, cancel, editorParams) {
var select = document.createElement("select");
select.style.width = "100%";
select.style.opacity = "0";
select.style.position = "absolute";
// 옵션 생성
if(values && values.length > 0) {
@@ -203,21 +205,32 @@ function fn_select2Editor(cell, onRendered, success, cancel, editorParams) {
width: "100%"
});
$(select).select2("open");
$(select).on("select2:select select2:clear", function(e) {
var selectedVal = $(select).val() || "";
// 콜백 호출 (프로젝트 변경 시 연동 처리 등)
if(typeof editorParams.onSelect === "function") {
editorParams.onSelect(cell, selectedVal);
}
success(selectedVal);
});
$(select).on("select2:close", function() {
setTimeout(function() { success($(select).val() || ""); }, 100);
});
});
var isCleared = false;
$(select).on("select2:select", function(e) {
var selectedVal = $(select).val() || "";
if(typeof editorParams.onSelect === "function") {
editorParams.onSelect(cell, selectedVal);
}
success(selectedVal);
});
$(select).on("select2:clear", function(e) {
isCleared = true;
if(typeof editorParams.onSelect === "function") {
editorParams.onSelect(cell, "");
}
setTimeout(function() {
$(select).select2("close");
success("");
}, 0);
});
$(select).on("select2:close", function() {
if(isCleared) return;
success($(select).val() || "");
});
return container;

View File

@@ -386,6 +386,8 @@ function createSelect2Editor(options, allowClear) {
var container = document.createElement("span");
var select = document.createElement("select");
select.style.width = "100%";
select.style.opacity = "0";
select.style.position = "absolute";
var emptyOption = document.createElement("option");
emptyOption.value = "";
@@ -410,14 +412,28 @@ function createSelect2Editor(options, allowClear) {
allowClear: allowClear !== false,
dropdownParent: $('body')
});
$(select).on('select2:select select2:clear', function(e) {
success($(select).val() || '');
});
$(select).select2('open');
});
var isCleared = false;
$(select).on('select2:select', function(e) {
success($(select).val() || '');
});
$(select).on('select2:clear', function(e) {
isCleared = true;
setTimeout(function() {
$(select).select2('close');
success('');
}, 0);
});
$(select).on('select2:close', function() {
if(isCleared) return;
success($(select).val() || '');
});
return container;
};
}