2012-09-14 1 views
0

Google 사이트 도구에서 텍스트 상자와 제출 버튼으로 구성된 간단한 양식을 html 표의 행에있는 셀에 추가하려고합니다. 표의 각 행에 대한 양식의 사본 한 부. 각 테이블 행에 대한 입력 데이터를 수집하려고합니다.GAS에서 HTML 표 내부에 렌더링 할 UI 양식 얻기

HTML 파일 :

<html> 
    ... 
    function showForm(){ // https://developers.google.com/apps-script/gui_builder#including 
    var app=UiApp.createApplication(); 
    app.add(app.loadComponent("myGui")); 
    return app; 
    } 
    ... 
    <table><tr><td><?=showForm()?></td></tr></table> 
    ... 
</html> 

그때 HtmlService.createTemplateFromFile() 메소드를 사용하여 내 .gs 파일 내의 doGet() 함수에서이 .html 파일을 호출합니다.

테이블이 제대로 표시되지만 양식이 표시 될 것으로 예상되는 경우를 제외하고 대신 텍스트 상자 + 제출 단추 조합 대신 텍스트/문자열 "UiApplication"이 표시됩니다.

올바른 경로에 있습니까? 도와주세요.

답변

0

잘못된 트랙입니다.

당신은 HtmlServiceUiApp에서 & 일치하는 구성 요소를 혼합 할 수 없습니다. GUI 빌더는 패키지 UiApp 구성 요소입니다.

FlexTable을 사용하고 빌더 구성 요소로 표 셀을 채우기 만하면됩니다. 그러나 접두사를 설정하는 것을 잊지 마세요 :

var flextab = app.createFlexTable(); 
for (row=0; ...) 
    for (col=0; ...) 
    flextab.setWidget(row, col, app.loadComponent("myGui", {"prefix": "row"+row+"col"+col}); 

을 BTW - 당신은 당신의 웹 응용 프로그램에서 하나의 UiInstance을 가질 수 있습니다. UiApp.createApplication()으로 한 번만 전화하십시오. 나중에 UiInstance이 필요하면 언제든지 UiApp.getActiveApplication()으로 찾을 수 있습니다.

+0

정말 고마워요. createFlexTable()은 올바른 방향의 유용한 포인트입니다! =] – Mowzer