function openwin(URL,x,y){ var URL; var x1=window.screen.width; var y1=window.screen.height; x2=(x1-x)/2; y2=(y1-y)/2; window.open(URL,'','top='+y2+',left='+x2+',width='+x+',height='+y+',status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes') }
基本就是用window.open()弹页
在弹出页里用window.opener来操作父页面的元素
showmodaldialog
function openwin(URL,x,y){
var URL;
var x1=window.screen.width;
var y1=window.screen.height;
x2=(x1-x)/2;
y2=(y1-y)/2;
window.open(URL,'','top='+y2+',left='+x2+',width='+x+',height='+y+',status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes')
}
参考:http://topic.csdn.net/u/20091029/15/b1e0e1b0-2d84-4a61-a207-a51eafb56ebd.html
window.opener.document.getElementById?("").value="";
看看页面源码就明白了
子页面中获取父页面对象:window.opener
window.showModalDialog(..)
子页面中获取父页面对象:window.dialogargument
var url = "../a.aspx?ToId=PId&ToName=PName";
var mwidth = "400";
var mheight = "250";
var loc_x, loc_y;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
alert(mwidth); loc_x = parseInt((document.body.clientWidth - mwidth) / 2 + 200);
loc_y = parseInt((document.body.clientHeight - mheight) / 2);
window.open(url, "", "left=" + loc_x + "px,top=" + loc_y + "px,width=" + mwidth + "px,height=" + mheight + "px,resizable=no,scrollbars=yes,status=0");
}
else {
loc_x = document.body.scrollLeft + event.clientX - event.offsetX - 100;
loc_y = document.body.scrollTop + event.clientY - event.offsetY + 170;
window.open(url, "", "left=" + loc_x + "px,top=" + loc_y + "px,width=" + mwidth + "px,height=" + mheight + "px,resizable=no,scrollbars=yes,status=0");
//indow.showModalDialog(url, self, "edge:raised;scroll:1;status:0;help:0;resizable:0;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogTop:" + loc_y + "px;dialogLeft:" + loc_x + "px");
}
}
a.aspx
var p_window;
if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1)
p_window = window.parent.opener;
else
p_window = window.parent.opener;
function SetValue(id, name) {
p_window.document.getElementById("hf_Id").value = id;
p_window.document.getElementById("txtName").value =name;
self.close();
}
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" onclick="ImageButton1_Click"
style="height: 16px; width: 14px" />ImageButton1_Click 事件中的代码
Response.Write("<script>window.open('Default.aspx','','width=400,height=300')</script>");子窗体 Default.aspx 源码 定义了一个 TreeView1 TextBox1 button
<asp:TreeView ID="TreeView1" runat="server"
onselectednodechanged="TreeView1_SelectedNodeChanged">
</asp:TreeView>
<p>
</p>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type='button' value='执行'
onclick='window.opener.document.getElementById("TextBox3").value=document.getElementById("TextBox1").value;' /></form>TreeView1_SelectedNodeChanged 事件代码
string strValue = this.TreeView1.SelectedNode.Text;
TextBox1.Text = strValue;现在碰到的问题 如果在子窗体不需要BUTTON 在 TreeView1_SelectedNodeChanged 事件中 如何把TreeView1.SelectedNode值传到父窗体的TXTBOX3中
Page.ClientScript.RegisterStartupScript(GetType(), "set", "window.opener.document.getElementById('TextBox3').value=document.getElementById('"+TextBox1.ClientID+"').value;", true);
<asp:Button ID="PdBtn" runat="server" Text="添加货品" Width="65px"
onclick="PdBtn_Click" />
PdBtn_Click事件代码
Response.Write("<script>window.open('Default2.aspx','','width=400,height=300')</script>");
子窗体 一个gridbiew
如何每次点击GRIDVIEW都会获得ID,把多次点击的ID 传回到父窗体。
如何一次性多传递多个ID
GridView3.DataKeyNames = new String[] { "mater_id" };
GridView3.DataSource = myds;
GridView3.DataBind();在gridview1上有一个选择按钮
在selectedindexchanging事件中加入一下代码 获得mater_id
string mater_id=gridview1.datakeys[e.newselectedindex].value.tostring
现在就是点击GRIDVIEW1中的选择按钮后,将该行的mater_id值传到母界面。要求一次性能传多行的mater_id值?
在母界面又如何取出这些mater_id值?
这句就是传值的语句啊只是 把TextBox1.ClientID 换成 HiddenField.ClientID