asp.net 하위 창의 값이 부모 창으로 전송됨
사실 웹 프로그램도 이 기능을 실현할 수 있다. 원리는 페이지 요소의 가시성을 이용하여 부모 페이지의 컨트롤 ID를 하위 페이지에 전달한 다음에 하위 페이지에서 컨트롤에 값을 부여하여 하위 페이지의 값을 저장하는 목적을 달성하는 것이다.코드는 다음과 같습니다.
<a href = "javascript:void(0)" onclick = "ShowProductWindow('<%=txtProduct.ClientID %>','<%=lblProductID.ClientID %>')" style="width:30px"> </a>
하이퍼링크를 정의하고 하이퍼링크를 클릭하면 하위 페이지가 팝업됩니다. ShowProductWindow는javascript 함수로 두 개의 매개 변수가 있습니다. 각각 부모 페이지에서 지정한 두 개의 컨트롤의 ID입니다. 함수에서 하위 페이지의 URL 검색 문자열을 통해 부모 페이지의 두 컨트롤의 id 값을 전달합니다. 정의는 다음과 같습니다.
function ShowProductWindow(obj,objid)
{
var m = document.getElementById(obj); //
var p = getPosition(m); //
var url = 'ProductSelect.aspx?TBIN='+obj+'&TBINID='+objid;// , ID url
window.open(url,'newwindow', 'height=400, width=400, top='+p.Y+', left='+p.X+', toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no'); // , ,
}
//
function getPosition(e)
{
var left = 0;
var top = 0;
var scroll = e;
//
while(e)
{
left += e.offsetLeft;
top += e.offsetTop;
e = e.offsetParent
}
//
while(scroll)
{
if (scroll.scrollLeft){left -= scroll.scrollLeft;}
if (scroll.scrollTop){top -= scroll.scrollTop;}
scroll = scroll.parentElement
}
return {X:left,Y:top}
}
하위 페이지의 페이지load 이벤트에서 부모 페이지 컨트롤의 id 값을 받아들여야 합니다. 페이지에 숨겨진 컨트롤에 값을 저장할 수 있습니다. 새로 고칠 염려가 없습니다.
protected void Page_Load(object sender, EventArgs e)
{
lgc = new ProductManageLogic(cidCurrent);
if (!IsPostBack)
{
BindData();
string tbin = Request.Params["TBIN"] == null ? "" : Request.Params["TBIN"].ToString();
txtTBIN.Value = tbin; // id txt
string tbinid = Request.Params["TBINID"] == null ? "" : Request.Params["TBINID"].ToString();
txtTBINID.Value = tbinid; // id txt
}
}
하위 페이지 되돌림 단추에서 하위 페이지의 되돌림 값을 부모 페이지 컨트롤에 써서 되돌림 값을 전달하는 효과를 가져야 합니다.여기에는 자바스크립트 함수를 빌려야 한다.
protected void gvContent_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "select")
{
string name = gvContent.DataKeys[int.Parse(e.CommandArgument.ToString())].Values["productname"].ToString();
string id = gvContent.DataKeys[int.Parse(e.CommandArgument.ToString())].Values["id"].ToString();
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "ReturnDetail('"+name+"','"+id+"');", true);
//Response.Write("<script>window.close();window.opener.location.href=window.opener.location.href;</script>");
}
}
이 예는 gridview에서 select라는 하이퍼링크를 누르면 되돌아옵니다.하이퍼링크를 눌렀을 때, 먼저 되돌려야 할 값name과 id를 가져오고, 페이지에서 자바스크립트 함수 ReturnDetail을 실행합니다. 이 함수에서 되돌려야 할 값을 부모 페이지의 컨트롤에 기록합니다. 함수 정의는 다음과 같습니다.
function ReturnDetail(BIN,BINID)
{
var _TBIN=document.all("txtTBIN").value; // ID(load )
var obj_TBIN= eval("window.opener.document.all('"+_TBIN+"')"); //
obj_TBIN.value= BIN; // ( )
var _TBINID=document.all("txtTBINID").value;
var obj_TBINID= eval("window.opener.document.all('"+_TBINID+"')");
obj_TBINID.value= BINID;
window.close(); // close ,
}
부모 페이지로 돌아가면 부모 페이지 컨트롤에서 하위 페이지의 귀환 값을 꺼내 해당하는 작업을 할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.