본문 바로가기
IT/nexacro

nexacro component 동적 생성하기

by heavenLake 2021. 2. 4.
반응형

 

 

nexacro component 동적 생성하기

 


//dynamic create
var objStatic = new Static("Static01", 10, 100, 100, 50);
//objStatic.set_cssclass("sta_WFDA_Data");
objStatic.set_border("1px solid red");
objStatic.set_text("Static01");
this.addChild("Static01", objStatic);
objStatic.show();

 

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<FDL version="2.0">
  <TypeDefinition url="..\default_typedef.xml"/>
  <Form id="form" left="0" top="0" width="1024" height="768" titletext="동적생성 Comp">
    <Layouts>
      <Layout>
        <Button id="Button00" taborder="0" text="생성" left="10" top="10" height="41" onclick="Button00_onclick" width="146"/>
        <Button id="Button01" taborder="1" text="ds_master" left="210" top="12" width="118" height="39" onclick="Button01_onclick"/>
      </Layout>
    </Layouts>
    <Objects>
      <Dataset id="ds_master">
        <ColumnInfo>
          <Column id="col1" type="STRING" size="256"/>
          <Column id="col2" type="STRING" size="256"/>
          <Column id="col3" type="STRING" size="256"/>
        </ColumnInfo>
        <Rows>
          <Row/>
        </Rows>
      </Dataset>
    </Objects>
  </Form>
</FDL>

this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
	var rtnObj;
	
	//delete comp
	for(var i=this.components.length-1; i>=0; i--){
		if( this.components[i].name != "Button00" && this.components[i].name != "Button01"){
			rtnObj = this.removeChild(this.components[i].name);
			rtnObj.destroy();
		}
	}
	
	//dynamic create
	var objStatic = new Static("Static01", 10, 100, 100, 50);  
	//objStatic.set_cssclass("sta_WFDA_Data");
	objStatic.set_border("1px solid red");
	objStatic.set_text("Static01");
	this.addChild("Static01", objStatic); 
	objStatic.show(); 

	objStatic = new Static("stc_MY", 120, 100, 100, 50);  
	//objStatic.set_cssclass("sta_WFDA_Label");
	objStatic.set_border("1px solid red");
	objStatic.set_text("MY");
	this.addChild("stc_MY", objStatic); 
	objStatic.show(); 
		
	objStatic = new Static("stc_Project", 230, 100, 100, 50);  
	//objStatic.set_cssclass("sta_WFDA_Label");
	objStatic.set_border("1px solid red");
	objStatic.set_text("Project");
	this.addChild("stc_Project", objStatic); 
	objStatic.show(); 
					
	var objEdit = new Edit("edt_smplStage", 10, 200, 100, 50);  
	objEdit.set_imemode("hangul");
	this.addChild("edt_smplStage", objEdit); 
	objEdit.show(); 
			
	objEdit = new Edit("edt_Project", 120, 200, 100, 50);  
	objEdit.set_imemode("hangul");
	this.addChild("edt_Project", objEdit); 
	objEdit.show(); 
				
	objEdit = new Edit("edt_MY", 230, 200, 100, 50);  
	objEdit.set_imemode("hangul");
	this.addChild("edt_MY", objEdit); 
	objEdit.show(); 				

	//delete binditem
	for(var i=this.binds.length-1; i>=0 ; i--)
	{
		rtnobj = this.removeChild(this.binds[i].name);
		rtnobj.destroy();	
	}	

	//bind
	var objBindItem = new BindItem();
	objBindItem.init("item11", "edt_smplStage", "value", "ds_master", "col1");
	this.addChild("item11", objBindItem); 
	objBindItem.bind();	
	
	objBindItem = new BindItem();
	objBindItem.init("item12", "edt_Project", "value", "ds_master", "col2");
	this.addChild("item12", objBindItem); 
	objBindItem.bind();	
		
	objBindItem = new BindItem();
	objBindItem.init("item13", "edt_MY", "value", "ds_master", "col3");
	this.addChild("item13", objBindItem); 
	objBindItem.bind();			
}

this.Button01_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	alert(this.ds_master.saveXML());
};
반응형

댓글