请教高手,很奇怪,treeview 中参数传递的问题,高分求救各位大虾。
请问动态建立treeview后,传递参数有几种方法,请给出详细代码,谢谢。
我是这样实现的,但存在一个很很奇怪的问题。
我动态的建立了一个treeview在框架中显示。我想当点击treeview中的一个节点时,就传一个参数到主框架页面。我用Session["bmlbid"]实现 ,但是当点击treeview节点时,treeview所在页面的Session["bmlbid"]值发生变化,而主框架页的Session["bmlbid"]不发生变化,当点击两次后才发生变化。请问为什么???
代码:treeview页面代码
private void Page_Load(object sender, System.EventArgs e)
{
pow=Convert.ToInt32(Session["power"]);
xwnew=new news1();
if (!IsPostBack)
{
/* addtree("0",null );*/
initree(TreeView1.Nodes ,"0");
TreeView1.Attributes.Add("ondblclick","TreeView1.getTreeNode(TreeView1.clickedNodeIndex).setAttribute('Expanded','True');");
}
string strTreeName = "TreeView1";
string strRef = Page.GetPostBackEventReference(TreeView1);
string strScript = "<script language=\"JavaScript\"> \n" + "<!-- \n" + " function initTree() { \n" +" " + strTreeName + ".onSelectedIndexChange = function() { \n" + "if (event.oldTreeNodeIndex != event.newTreeNodeIndex) \n" + "this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); \n" + "window.setTimeout('" + strRef.Replace("'","\\'") + "', 0, 'JavaScript'); \n" + " } \n" + " } \n" + "// --> \n" + "</script>";
Page.RegisterClientScriptBlock("InitTree",strScript );
// 在此处放置用户代码以初始化页面
}
private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
Session["bmlbid"]=this.TreeView1.GetNodeFromIndex(this.TreeView1.SelectedNodeIndex).ID;
Label1.Text=Session["bmlbid"].ToString();
}
主框架页代码:
private void databind()
{
string xwlb="";
xwlb=Convert.ToString(Session["bmlbid"]);}
为什么会出现单击两次节点才能把 treeview 页面的Session["bmlbid"]传 过来。