YUI DataTable의 2를위한 빠른 편집 모드
년 | 8시 42분에서 2010년 8월 19일 존 Lindal하여 오전 개발 | 9 개의 댓글 YUI DataTable의는이 매끄러운 인라인 편집을 제공합니다. 언제 disableBtns 열 구성 켜져있다면, 문자열 또는 숫자와 같은 간단한 값을 수정하는 것은 엑셀 것 같아요. 각각의 변화는 일반적으로 (또는 거부할!) 새 값을 저장하기 위해 서버에 XHR 호출을 필요로하기 때문에 그러나, 경험이 데스크톱 애플 리케이션처럼 응답 수 없습니다. 사용자가 표시된 값을 많이 변경해야하는 경우, 그것은 느리고 좌절 경험이 될 수 있습니다. 이러한 문제를 해결하기 위해, 나는 QuickEditDataTable을 개발했습니다. 이 DataTable의 모든 가능한 값을 하나의 일괄 작업으로 변경할 수 있습니다 빠른 편집
모드를 추가 확장 :
개요
빠른 편집 모드를 입력하려면 전화 startQuickEdit() . 빠른 편집 모드를 종료하려면 전화 cancelQuickEdit() .
그것은 호출하기 전에 변경 사항을 저장하는 것은 귀하의 책임입니다 cancelQuickEdit() . 이 작업을 단순화하기 위해, QuickEditDataTable 제공 getQuickEditChanges() . 이것은 개체의 배열, 각 행에 대해 하나를 반환합니다. 각 개체는 열 ID의를 키, 그 행의 변경되었습니다에만 값이 포함되어 있습니다. 테이블 4 열 (제목, 저자, 년, 수량) 가지고 있으며, 사용자가 불과 20 한 행의 수량을 변경하는 경우 예를 들어, 다음 해당 행에 대해 개체가 될 {quantity:20} . 다른 값은 생략됩니다.
QuickEditDataTable 쉽게 확장할 수 있습니다 YAHOO.widget.ScrollingDataTable 당신이 그 기능을 필요하다면. 당신이 필요한 경우, 단순히 원본 파일의 복사본을 만들고 기본 클래스를 변경할 수 있습니다.
구성
빠른 편집 가능한 열에 대한 셀 formatters이 밖으로 바꾼 특별한 생성 formatters로 대체되는 모달 상태입니다 input , textarea , 또는 select 요소. 이 열만 quickEdit 구성을 수정할 수 있습니다. 구성 옵션은 다음과 같습니다
-
copyDown true이면, 컬럼에서 최고의 휴대폰이 행의 나머지 값을 복사하는 버튼이 있습니다.
-
formatter 셀 해당 양식 필드를 렌더링 포맷 : <input type="text">, <textarea>, 또는 <select>. 기본적으로 셀 포맷의
YAHOO.widget.QuickEditDataTable.textQuickEditFormatter입력 요소를 생산하는 모든 세포에 사용됩니다. 얻으려면textarea요소를 사용하도록 열을 구성할YAHOO.widget.QuickEditDataTable.textareaQuickEditFormatter대신합니다. 당신은 또한 사용자 정의 빠른 편집 포맷을 작성할 수 있습니다 - 아래를 참조하십시오.-
validation 열에있는 각 필드에 대한 유효성 검사 구성.
-
css 기본 유효성 검사 규칙을 인코딩 CSS 클래스 :
-
yiv-required 값이 비어 있지 않아야합니다.
-
yiv-length:[x,y] 문자열은 최소한이어야합니다
x대부분의 문자와y자. x와 y 중 적어도 하나는 지정해야합니다.-
yiv-integer:[x,y] 정수 값을는 최소한이어야
x및 대부분의y.x와y모두 선택 사항입니다.-
yiv-decimal:[x,y] 소수점 값은 이상이어야합니다
x및 대부분의y. 지수는 허용되지 않습니다.x와y모두 옵션입니다.
-
-
fn 인자로 그 범위와 세포의 형태 요소로 DataTable의와 함께 호출됩니다 함수. 값이 유효한 경우 true 반환합니다. 그렇지 않으면, 전화
this.displayQuickEditMessage(...)오류를 표시하고 잘못된 반환합니다.-
msg 기본 또는 정규식 유효성 검사 규칙이 실패하면 표시됩니다 메시지 종류의지도. 유효한 유형은 다음과 같습니다
required,min_length,max_length,integer,decimal, 그리고regex. 유형에 대한 기본값은 없습니다regex당신이 정규식 유효성 검사를 구성하는 경우, 당신은 메시지를 지정해야합니다. 다른 유형에 대한 기본 오류 메시지에 저장YAHOO.widget.QuickEditDataTable.Strings과 재정 및 / 또는 현지하실 수 있습니다.-
regex 유효한 것으로 간주되기 위해서는 값을 만족해야하는 정규 표현식.
-
때로는 아닌 편집 가능한 열은 빠른 편집 모드 동안 다르게 렌더링해야합니다. 가장 좋은 예제는 빠른 편집 모드에 악영향이있을 수 있지만 페이지에서 멀리 이동 있기 때문에, 링크를 포함하는 컬럼입니다. 빠른 수정 중에 링크를 제거하려면 구성 qeFormatter 수 열의 YAHOO.widget.QuickEditDataTable.readonlyLinkQuickEditFormatter . 이메일 주소에 대한 사용 YAHOO.widget.QuickEditDataTable.readonlyEmailQuickEditFormatter . 당신은 또한 당신에게 사용자 정의, 읽기 전용 포맷을 작성할 수 있습니다. 간단히있는 DataTable 셀 포맷을 구축을위한 일반적인 규칙을 따르십시오.
사용자 지정 빠른 수정 Formatters
QuickEdit 모드 사용자 정의 셀 포맷을 작성하려면 다음과 같이 함수를 구조해야합니다 :
기능 myQuickEditFormatter (oColumn 엘, oRecord, oData) { var에 마크업 = '<input type="text" class="{yiv} yui-quick-edit yui-quick-edit-key:{key}"/>'+ YAHOO.widget.QuickEditDataTable.MARKUP_QE_ERROR_DISPLAY; el.innerHTML = lang.substitute (마크업, { 키 : oColumn.key, yiv : oColumn.quickEdit.validation? (oColumn.quickEdit.validation.css | | ') : '' }); el.firstChild.value = extractMyEditableValue (oData); YAHOO.widget.QuickEditDataTable.copyDownFormatter.apply (이, 인자); };
당신이 사용할 수있는 textarea 하거나 select 대신에 input 하지만, 당신은 단지 하나의 필드를 만들 수 있습니다.
extractMyEditableValue() 별도의 기능을해야하지 않으며 그것은 사용에 제한되어야합니다 oData . 작품은 일반적으로 포맷 함수에서 인라인 수행하지만, 샘플 함수의 이름은 요점이 명확하게해야합니다.
공유 및 확장 : del.icio.us로 스크랩 | 디그 그것! | 레딧!
9 개의 댓글
죄송합니다, 코멘트 양식이 시간에 문을 닫습니다.




음 .. 모두 아주 좋은,하지만 어디 우리가 코드를 구할 수 있습니까? 다운로드 링크, 누구?
에 의해 코멘트 넬슨 Menezes - 2010년 8월 22일 #
: 예제에서 링크된 JavaScript 파일 다운로드 http://jafl.github.com/yui2/quickedit/QuickEdit.js을
에 의해 코멘트 존 Lindal - 2010년 8월 23일 #
그것은 위대한 작품, 그리고 우리에게 며칠을 구했어! 노력에 대해 감사합니다.
에 의해 코멘트 넬슨 Menezes - 2010년 8월 23일 #
아주 잘 작동합니다. 상업적 목적이 사용할 수 있도록 여러분의 의도입니다. 그렇다면, 당신은 코드를 오픈 라이센스를 추가해야합니다.
정확히 내가 구축하는 데 필요한 인터페이스 중 하나에 대한 필요가로서 나는 QuickEdit를 사용할 수 있도록 싶어요.
톰
dj99dallas@gmail.com
톰 DesJardins에 의해 코멘트 - 2010년 8월 28일 #
나는 BSD 라이선스와 코드를 업데이 트했습니다.
에 의해 코멘트 존 Lindal - 2010년 8월 30일 #
좋은 물건 이군. 나에게 시간을 많이 저장됩니다.
BTW, 유효성 검사가 this.displayMessage과 quickedit.js 라인 112에 자바 스크립트 오류와 실패는 작동하지 않을 수 있습니다.
제가 파이어 폭스에서 실행하지만, 페도라 14 64 비트 불을 지르고, 그것이 문제있다면.
DM에 의해 코멘트 - 2010년 11월 24일 #
죄송합니다! 고맙게도, 오류가없는 QuickEdit.js에서 예제 코드를했습니다. 내가 살고 예제를 업데이 트했습니다.
에 의해 코멘트 존 Lindal - 2010년 11월 29일 #
안녕하세요
제가 소스보기를 통해 사용된 샘플 quickedit.js 코드와 JS 코드를 사용하려고하고 나는 빠른 편집 작업을 얻을 수 없습니다. 제가 소스보기에 표시되는 정확한 코드를 사용하고 있습니다. 누구나 도울 수
누가이 일을 해?
제가 사용하고있는 코드를 제공할 수
감사합니다,
닐
닐 버클리에 의해 코멘트 - 2011년 6월 23일 #
페이지에 링크 오류를 재현하는 데 필요한 단계를 제공하시기 바랍니다.
에 의해 코멘트 존 Lindal 2011년 6월 23일 - #