Asp(C#) treeview 前台 后台跳转关联,TMD,终于弄出来了
来源:互联网 发布:c语言能找什么工作 编辑:程序博客网 时间:2024/05/22 09:38
目的:asp页面,捕捉左侧框架页面中树形菜单所选中内容,然后将对应的页面给装载到某个指定的框架内显示,同时将所选内容传过去……
方法一:(昨天的方法,后来证明这个方法有漏洞)
<!--这段代码,可以捕捉页面上treeview控件中checkedbox为选中状态的文本,但是悲剧的是,当把treeview上checkbox选中后再折叠起来,他就愣了,找不到文本了-begin->
<script type="text/javascript">
function check(){
var html="";
var check = document.getElementById("TreeView1").getElementsByTagName("input");
for(var i=0;i<check.length;i++){
if(check[i].checked)
html+=check[i].title+" ";
}
// window.top.frames["left"].document.getElementById("text1").value=html;
//parent.frames("right").frames("mainframe").location.href ="MainWindow.aspx?hrz_heng=" +"<%=Session["request"]%>";
parent.frames("right").frames("mainframe").location.href ="MainWindow.aspx?hrz_heng=" +html;
}
</script>
<!------------------------------------------------------end--------------------------------------------------------------------------------------------->
方法二:
<!---------这段代码是点击复选框触发,如果对象类型为checkbox 对象名为input即checkbox,则强制后台执行-------begin------>
<script language="javascript" type="text/javascript">
// 点击复选框时触发事件
function postBackByObject()
{
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox")
{
__doPostBack("","");
}
}
</script>
<!-----------------------------------------------------------------end-------------------------------------------------->
asp中的treeview控件:
<<<<<<<<<<<<<<<<<<<<begin<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<asp:TreeView ID="TreeView1" runat="server"
ImageSet="XPFileExplorer" EnableClientScript="False"
Width="250px" ShowCheckBoxes="leaf" Font-Size="Medium"
ShowLines="True" AutoGenerateDataBindings="True"
ontreenodecheckchanged="TreeView1_TreeNodeCheckChanged" >
<SelectedNodeStyle Font-Overline="False" BackColor="BurlyWood" Font-Bold="true"/>
</asp:TreeView>
<<<<<<<<<<<<<<<<<<<<<<<<end,<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
......................................................以上是前台代码。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。后台代码。。。。。。。。。。。。。。。。。。。。。。。。。。。。
在treeview控件的属性中添加新的onclick属性:
TreeView1.Attributes.Add("onclick", "postBackByObject()");
<!-------------------------------------一下代码是从前台强制过来执行的--------------------------------------------------------->
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
string a = "";
if (Session["request"] != null)
{
a = Session["request"].ToString();
}
//选中
if (e.Node.Checked == true)
{
a += e.Node.Text + ",";
}
//取消
if (e.Node.Checked == false)
{
a = a.Replace(e.Node.Text + ",", "");
}
Session["request"] = a;
// Response.Write(" <script> parent.frames('right').frames('mainframe').location.href ='MainWindow.aspx?hrz_heng=' +'<%=Session['request']%>';</script> ");
//Response.Write(" <script> parent.frames('right').frames('mainframe').location.href ='shit.aspx';</script> ");
}
<---------------------------------------end------------------------------------------------------------------------------------------>
点评:这个方法 很好,可以实现效果,但是美中不足的是,每点中一下checkbox,页面总要刷新一次,页面跟后台交互,闪的太厉害,不好美观,因此否决,另觅……
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
方法三:
前台:用个linkbutton控件
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton>
后台:
protected void LinkButton1_Click(object sender, EventArgs e)
{
string s = "";
for (int i = 0; i <= TreeView1.CheckedNodes.Count - 1; i++)
{
s = s + TreeView1.CheckedNodes[i].Text.ToString().Trim() + ",";
}
s = s.Remove(s.Length-1);
Response.Write("<script> parent.frames('right').frames('mainframe').location.href ='MainWindow.aspx?hrz_heng=" + s + "';</script> ");
}
最关键的代码是最后一句:
Response.Write("<script> parent.frames('right').frames('mainframe').location.href ='MainWindow.aspx?hrz_heng=" + s + "';</script> ");
奶奶的,绕了这么久,最后原来这么简单的方法就能解决……
- Asp(C#) treeview 前台 后台跳转关联,TMD,终于弄出来了
- Asp.net中如何实现后台控制前台的跳转
- 终于弄出来了,哇哈哈
- eclipse3终于出来了。。。
- php5终于出来了
- doom3终于出来了
- 终于出来了~~
- iphone终于出来了
- 终于能用C语言整个Windows窗体出来了
- 终于从公司出来了
- 模型终于建出来了
- 考研成绩终于出来了!
- JavaBean---终于显示出来了
- yyparty.com终于出来了。
- ASP.NET 前台后台问题
- asp.net前台后台互动
- 终于试出来了Splitter了
- loadrunner--终于关联成功了
- Linux下的cut命令详解
- 1、怎么样学好单片机
- Java使用OCI驱动连接Oracle数据库实现方法
- 查看、修改oracle字符集,查看oracle版本
- 2、昨晚调试的1602液晶数字时钟—可调时
- Asp(C#) treeview 前台 后台跳转关联,TMD,终于弄出来了
- 利用ArrayCollection获取数据库的信息构建多级树结构
- zju/zoj 1136 Multiple(BFS)
- java新式for循环
- No Launcher activity found!
- 降低被当做垃圾邮件的要注意的方面
- 动态规划——背包系列之装箱问题
- Html align="center"与valign="middle"的区别
- onInterceptTouchEvent和onTouchEvent调用时序