我有一个主界面是frame代码如下:
<frameset id="HeaderFrame" rows="19%,81%" onload="MaxWin()">
<frame noResize>
<frameset onload="MaxWin()" cols="20%,80%">
<frame id="LeftFrame" src="setsubject.aspx">
<frame id="RightFram">
</frameset>
</frameset>
左边框架LeftFrame中显示的是节点界面setsubject.aspx,当我点击某节点时,右边的框架RightFram放的界面是modifysubject.aspx界面。请问怎么实现?请写出具体代码,谢谢。在线等,急。。setsubject.aspx的代码是:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using Settlement.IDAL.SUBJECT;
using Settlement.Entity.SUBJECT;
using Settlement.OracleDAL.SUBJECT;
using Settlement.Common;
using Settlement.DALFactory.SUBJECT;
using Settlement.BLL.SUBJECT;namespace Settlement.Web.SUBJECT
{
/// <summary>
/// setsubject 的摘要说明。
/// </summary>
public class setsubject : System.Web.UI.Page
{
protected Settlement.Web.SUBJECT.SetSubjectxsd setCateGory;
protected Settlement.Web.SUBJECT.SetSubjectxsd setsubj;
protected Settlement.Web.SUBJECT.SetSubjectxsd setcsubj;
protected Microsoft.Web.UI.WebControls.TreeView TreeView;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
this.FillNode();
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.setCateGory = new Settlement.Web.SUBJECT.SetSubjectxsd();
this.setsubj = new Settlement.Web.SUBJECT.SetSubjectxsd();
this.setcsubj = new Settlement.Web.SUBJECT.SetSubjectxsd();
((System.ComponentModel.ISupportInitialize)(this.setCateGory)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.setsubj)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.setcsubj)).BeginInit();
// 
// setCateGory
// 
this.setCateGory.DataSetName = "SetSubjectxsd";
this.setCateGory.Locale = new System.Globalization.CultureInfo("en-US");
// 
// setsubj
// 
this.setsubj.DataSetName = "SetSubjectxsd";
this.setsubj.Locale = new System.Globalization.CultureInfo("en-US");
// 
// setcsubj
// 
this.setcsubj.DataSetName = "SetSubjectxsd";
this.setcsubj.Locale = new System.Globalization.CultureInfo("en-US");
this.TreeView.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView1_SelectedIndexChange);
this.Load += new System.EventHandler(this.Page_Load);
((System.ComponentModel.ISupportInitialize)(this.setCateGory)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.setsubj)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.setcsubj)).EndInit(); }
#endregion private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
Microsoft.Web.UI.WebControls.TreeNode nodesel = new TreeNode();
nodesel = this.TreeView.GetNodeFromIndex(this.TreeView.SelectedNodeIndex);
nodesel.NavigateUrl = "modifysubject.aspx";
nodesel.Target = "RightFram";

} #region 用户自定义的方法
/// <summary>
/// 添充节点
/// </summary>
private void FillNode()
{
try
{

//初始化科目设置
new SETSUBJECT().readCateGory(setCateGory); //添充类别根节点
int j = setCateGory.Tables["tbl_category"].Rows.Count;
for(int i = 0;i<j;i++)
{
TreeNode nodeobject = new TreeNode();
nodeobject.Text = setCateGory.Tables["tbl_category"].Rows[i]["FLD_CATEGORYNAME"].ToString();
string strCateGoryId = setCateGory.Tables["tbl_category"].Rows[i]["FLD_CATEGORYID"].ToString();
this.TreeView.Nodes.Add(nodeobject);
nodeobject.Expanded = false;

new SETSUBJECT().readSubject(setsubj,strCateGoryId); //添充科目节点
int subject_j = setsubj.Tables["tbl_subject"].Rows.Count;
for(int subject_i=0;subject_i<subject_j;subject_i++)
{
TreeNode nodesubject = new TreeNode();
string strSubjectName = setsubj.Tables["tbl_subject"].Rows[subject_i]["FLD_SUBJECTNAME"].ToString();
string strSubjectId = setsubj.Tables["tbl_subject"].Rows[subject_i]["FLD_SUBJECTID"].ToString();
nodesubject.Text = strSubjectName + "(" + strSubjectId + ")";
nodeobject.Nodes.Add(nodesubject);
nodesubject.Expanded = false; new SETSUBJECT().readChildSubject(setcsubj,strSubjectId); //添充子科目节点
int csubject_j = setcsubj.Tables["tbl_subject"].Rows.Count;
for(int csubject_i=0;csubject_i<csubject_j;csubject_i++)
{
TreeNode nodecsubject = new TreeNode();
string strcSubjectName = setcsubj.Tables["tbl_subject"].Rows[csubject_i]["FLD_SUBJECTNAME"].ToString();
string strcSubjectId = setcsubj.Tables["tbl_subject"].Rows[csubject_i]["FLD_SUBJECTID"].ToString();
nodecsubject.Text = strcSubjectName + "(" + strcSubjectId + ")";
nodesubject.Nodes.Add(nodecsubject);
nodecsubject.Expanded = false;
}
}
}
this.TreeView.ExpandLevel = 1;

}
catch(Exception ex)
{
throw ex;
}
}
#endregion
}
}

解决方案 »

  1.   

    Target属性为"右边的框架名称"
      

  2.   

    我有一个主界面是frame代码如下:
    <frameset id="HeaderFrame" rows="19%,81%" onload="MaxWin()">
    <frame noResize>
    <frameset onload="MaxWin()" cols="20%,80%">
    <frame id="LeftFrame" src="setsubject.aspx">
    <frame id="RightFram">
    </frameset>
    </frameset>
    -----------------------------------------------------
    把<frame id=....>  改成<frame name=..........>
      

  3.   

    Page.RegisterStartupScript("info","<script>window.open('modifysubject.aspx','RightFram');</script>");
    注意:这个RightFram应该是右边Frame的name。
      

  4.   

    setsubject.aspx中的treeview代码这么写:
    <iewc:TreeView id="tvMenu"  runat="server">
    <iewc:TreeNode NavigateUrl="modifysubject.aspx" Text="节点" Target="RightFram"></iewc:TreeNode>
    </iewc:TreeView>
      

  5.   

    点击节点事件用客户端的onclick事件
    在onclick中写你需要的传递的参数
    比如:
    document.all.RightFram.src="aspx页面+参数"
      

  6.   

    <HTML>
    <HEAD>
    <TITLE>Logistics_Default</TITLE>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <frameset rows="64,*">
    <frame name="banner" scrolling="no" noresize src="Top.aspx">
    <frameset cols="192,76%">
    <frame name="contents" src="Tree.aspx" scrolling="auto">
    <frame name="RightFram" scrolling="auto">
    </frameset>
    <noframes>
    <body>
    <p>此网页使用了框架,但您的浏览器不支持框架。</p>
    </body>
    </noframes>
    </frameset>
    </HTML>
    在Tree.aspx.cs中编写代码 protected Microsoft.Web.UI.WebControls.TreeView tv1;private void Page_Load(object sender, System.EventArgs e)
    {
    TreeNode tn;
    TreeNode tn1;
    //把该用户对应的模块名称添加到菜单的根目录!
    for (int i=0;i<10;i++) //i可以是一个dataset 例如for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
       tn = new TreeNode ();
       tn.Text = 菜单上显示的名称!;
       tn.NavigateUrl =地址URL;
       tn.Target ="RightFram";//此处是你右面框架的名字!
       tv1.Nodes .Add (tn);
    }}
      

  7.   

    对节点的相应属性进行赋值就可以了:TreeNode tNode = new TreeNode();
    tNode.NavigateUrl="modifysubject.aspx";
    tNode.Target = "RightFram";
    Tree.Nodes.Add(tNode);