use javascript, for example
parent.frames['mainFrame'].document.form1.txt1.value = x1. frameset.aspx:
<frameset rows="200,*">
 <frame name="nav" src="nav.aspx">
 <frame name="mainFrame" src="main.aspx">
</frameset>2. nav.aspx:
<script language="javascript">
var x = 12345;
</script>
<form runat="server">
<asp:button id="Button1" Text="Update Main" runat="server"/>
</form>
<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
  Button1.Attributes["onclick"]="parent.frames['mainFrame'].document.form1.txt1.value = x;return false;";
}
</script>3. main.aspx:
<form id="form1" runat="server">
<asp:TextBox id="txt1" runat="server" />
</form>

解决方案 »

  1.   

    saucer(思归, MS .NET MVP) 你的方法你测试过了吗?为什么我不能接收到这个变量x?代码几乎跟你雷同了
      

  2.   

    of course, create three files as shown, then click on "Update Main" button
      

  3.   

    saucer(思归, MS .NET MVP) ,原来因为的框架里面还嵌套框架的缘故,我在
    parent前面再加一个parent就解决问题了,不过还有一个问题是,我现在的变量是从TextBox1这里得到的啊,所以我在那句前面再加了一句:
    Button1.Attributes.Add("onclick","var x=document.all.TextBox1.value;return false;");
    可是这样x根本就得不到textbox1的值,有其他的方法吗?
      

  4.   

    1.
    parent.parent.
    =>
    top.2.
    Button1.CausesValidation=false
      

  5.   

    还有一个问题啊,当textbox1显示这个值后,那我怎么样接下去马上在cs里取到这个值执行其他事件呢?排除再另外加个button,进行第二次的触发的情况,我想一步到位,有办法吗?
      

  6.   

    没有办法吗?
    最好的方法是直接传递值到main框架里的一个公共变量上,但是我不知道怎么弄,只能通过先传值到textbox上,然后再传递到某个变量上,可是这个过程不是还要多一个事件触发了?