net(C#)如何将弹出页面中的数据传回主页面

danisluo 2009-03-22 05:32:16
A页面:
一个文本框,一个按钮(select),
B页面
一颗树,树节点复选框属性为true,要求可以选取多个节点.一个按钮(confirm),
点击select弹出B页面,在B页面点击confirm将树节点选择的值按:节点1;节点2;节点3...的形式返回显示在A页面文本框中。
请问如何解决????
...全文
526 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolu0575 2009-04-13
  • 打赏
  • 举报
回复
<script type="text/javascript" >
function ChooseTreeNodes() {
var result = "";
var nodes = document.getElementById("<%= TreeView1.ClientID %>").getElementsByTagName("input");
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].type == "checkbox" && nodes[i].checked) {
var p = nodes[i].parentElement || nodes[i].parentNode;
result += p.getElementsByTagName("a")[0].innerHTML + " ";
}
}
window.opener.Choose(result);
window.close();
}
</script>


这样获得的是 TreeNode 的 text 值,如果 要获得 value 值呢?
xiaolu0575 2009-04-13
  • 打赏
  • 举报
回复
如果想获得节点的值该怎么办呢?

<script type="text/javascript" >
function ChooseTreeNodes() {
var result = "";
var nodes = document.getElementById("<%= TreeView1.ClientID %>").getElementsByTagName("input");
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].type == "checkbox" && nodes[i].checked) {
var p = nodes[i].parentElement || nodes[i].parentNode;
result += p.getElementsByTagName("a")[0].innerHTML + " ";
}
}
window.opener.Choose(result);
window.close();
}
</script>


这样取得的是TreeNode的Text值,如果想得到 Value值呢?
danisluo 2009-03-22
  • 打赏
  • 举报
回复
ojlovecd大虾的回复正是我想要的,我先测试一下。
tianke3477 2009-03-22
  • 打赏
  • 举报
回复
我觉得用弹出层的用户体验好点,而且实现起来还容易
benjaminwu198818 2009-03-22
  • 打赏
  • 举报
回复
静态类,也可以传递的…方法很多的哦。。
benjaminwu198818 2009-03-22
  • 打赏
  • 举报
回复
using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Form2 f2;//声明一个窗体对象

//编写一个值传递事件(窗体关闭时实行传递)
private void f2_Closing(object sender, CancelEventArgs e)
{
this.textBox1.Text = f2.公共的属性;//是public类型的哦

}
//打开第二个窗体(然后执行事件)
private void Select_Click(object sender, EventArgs e)
{
f2 = new Form2();
f2.Show();

f2.Closing += new System.ComponentModel.CancelEventHandler(f2_Closing);//调用自己编写的关闭事件所要执行的…
}



}
}
scy251147 2009-03-22
  • 打赏
  • 举报
回复
顶起
我姓区不姓区 2009-03-22
  • 打赏
  • 举报
回复
参考:
A页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" >
function Choose(str) {
document.getElementById("<%= TextBox1.ClientID %>").value = str;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" onclick="window.open('WebForm1.aspx','_blank');" value="select" />
</div>
</form>
</body>
</html>


B页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript" >
function ChooseTreeNodes() {
var result = "";
var nodes = document.getElementById("<%= TreeView1.ClientID %>").getElementsByTagName("input");
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].type == "checkbox" && nodes[i].checked) {
var p = nodes[i].parentElement || nodes[i].parentNode;
result += p.getElementsByTagName("a")[0].innerHTML + " ";
}
}
window.opener.Choose(result);
window.close();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All">
<Nodes>
<asp:TreeNode Text="1" Value="1">
<asp:TreeNode Text="2" Value="2">
<asp:TreeNode Text="3" Value="3">
<asp:TreeNode Text="4" Value="4"></asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="5" Value="5"></asp:TreeNode>
<asp:TreeNode Text="6" Value="6"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="7" Value="7">
<asp:TreeNode Text="8" Value="8"></asp:TreeNode>
<asp:TreeNode Text="9" Value="9"></asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text="10" Value="10">
<asp:TreeNode Text="11" Value="11"></asp:TreeNode>
<asp:TreeNode Text="12" Value="12"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
<input type="button" value="confirm" onclick="ChooseTreeNodes()" />
</div>
</form>
</body>
</html>

不用写一句后台代码
宝_爸 2009-03-22
  • 打赏
  • 举报
回复
up
gisyellow 2009-03-22
  • 打赏
  • 举报
回复
如果是WinForm的话,使用一个委托就可以了。
在B页面声明委托和事件,并在点击节点时触发;在A页面添加对事件的监控,并提供事件处理函数。
流氓兔 2009-03-22
  • 打赏
  • 举报
回复
是B/S,还是C/S的啊,B/S就存在viewstate、或则SESSION等等中啊,C/S就简单多了
danisluo 2009-03-22
  • 打赏
  • 举报
回复
树节点是固定的,不用动态去数据库中读数据后再加载.比如说节点1:语文,节点2:数学

110,547

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧