1단계 등급 항목에 등급 하위 항목이 포함되어 있는 경우 해당 등급 항목을 클릭하면 사용자가 조작할 수 있는 현재 등급 항목의 모든 등급 하위 항목 목록이 새 창에 표시됩니다. 사용자 작업이 완료된 후 "확인"버튼을 클릭하면 상위 폼으로 돌아가고, 하위 폼의 모든 작업 결과는 동시에 상위 폼으로 이동됩니다. 동시에 사용자가 평가 항목을 다시 클릭하는 경우 하위 폼이 팝업되는 동안 마지막 작업의 결과는 해당 작업 항목에 바인딩되어야 합니다.
위에 설명된 예에는 상위 양식과 하위 양식 간의 데이터 전송이 포함됩니다. 물론 이 데이터 전송을 구현하는 방법에는 여러 가지가 있습니다. 여기서는 이 예에서 사용한 방법을 기록합니다. 내 방법은 하위 폼이 "확인" 버튼을 클릭할 때 작업 결과를 json 형식의 문자열로 구성하고 상위 폼에서 opener.method() Superior 메소드를 호출하여 json 형식 데이터를 상위 폼으로 전송하는 것입니다.
이 예에서 생성된 json 데이터는 다음 형식과 유사합니다:
{"MyData":[
{"bh":"111","lx" :"1 ","df":"10","bz":"aaa"},
{"bh":"112","lx":"2","df":" 20", "bz":"bbb"},
{"bh":"113","lx":"2","df":"30","bz":"ccc" }
]}
유지해야 할 하위 항목 점수는 bh: lx: df: Score;
자신의 필요에 따라 유지 관리가 필요한 항목을 추가할 수 있습니다. 이 json 데이터는 포그라운드 또는 백그라운드에서 구성될 수 있습니다.
이번 예시에서는 배경을 배치해봤습니다. 코드는 다음과 같습니다.
StringBuilder jsonBuilder = new StringBuilder( );
jsonBuilder.Append("@{"");
jsonBuilder.Append("MyData");
jsonBuilder.Append("":["); >
int k = bh.Split(',').Length 1;
for (int i = 0; i < bh.Split(',').Length; i )
{
tem = "KH_PFX 세트 DF = '" EncriptLib.EncriptLib.EncodeCode(Convert.ToDouble(df.Split(',')[i].ToString().Trim())) "',"; >tem = "BZ = '" bz.Split(',')[i].ToString().Trim() "',PFRXM = '" Session["XM"].ToString() "',"; 🎜>tem = "PFRBH = '" 세션["YHBH"].ToString() "',PFRQ = to_date('" DateTime.Now.ToShortDateString() "','yyyy-MM-dd')"
tem = " where BH = '" bh.Split(',')[i].ToString().Trim() "'";
tem = "卐"; //여기에서는 이 특수 기호를 사용합니다. 별도의 SQL 문
jsonBuilder.Append("{"bh":" """ bh.Split(',')[i].ToString().Trim() """ ",");
jsonBuilder.Append(""lx":" """ lx.Split(',')[i].ToString().Trim() """ ","); ""df": " """ df.Split(',')[i].ToString().Trim() """ ",")
jsonBuilder.Append(""bz":" ") "" bz.Split (',')[i].ToString().Trim() """ "},");
}
if(tem != "")
{
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}")
Page.ClientScript.RegisterClientScriptBlock (GetType(), "cg", "<Script>window.close();opener.GetZXDF('zxdf" Request.QueryString["bh"].ToString() "','" parent_df.Text.Trim( ) "',' " jsonBuilder.ToString() "',"" tem "");</Script>")
}
"@" 기호는 방지할 수 있습니다. jsonBuilder.ToString() 이후 이스케이프 문자 ""가 사라집니다.
상위 양식의 GetZXDF() 메서드를 호출하여 json 데이터를 상위 양식에 전달합니다.
다음은 하위 폼 로드 시 json 데이터를 바인딩하는 코드입니다.
코드 복사
//로드할 때 json을 가져온 다음 채점 결과를 바인딩합니다
var obj = opener.GetJson($ ("# txt_YCBH").val());
if($.trim(obj) != ""){
obj = "(" obj ")"
obj = eval(obj );
var data = obj.MyData;
$.each(data, function(i, n) {
if(n.lx == "1"){
//직접 분류 바인딩
$("#lx" n.bh).siblings("input").eq(0).val(n.df)
$("#lx" n.bh).siblings 정의 ( "입력").eq(1).val(n.df);
$("#lx" n.bh).parent().parent().next().children().children( " textarea").val(n.bz);
}
if(n.lx == "2"){
//옵션 분류 바인딩
$(" # lx" n.bh).siblings("input:text").eq(1).val(n.df);
$("#lx" n.bh).siblings("input:checkbox" ) .each(function(){
if($.trim($(this).val()) == $.trim(n.df)){
$(this).attr("checked " ,true);
}
});
$("#lx" n.bh).parent().parent().parent().next().children().children( "textarea").val(n.bz);
}
});
opener.GetJson() 메서드는 상위 양식에서 하위 양식 json에 전달하는 데 사용됩니다. 데이터 방식의 코드는 다음과 같습니다.
코드 복사