1. QueryString的使用
可通过NavigatureURL或href等属性在打开一个页面时发送QueryString,使用方法如下:
如一个页面有如下的一个链接:
<a href="showpage.aspx?page=test" target="showpageFrame">Try</a>
此处,文本就会显示为Try,然后点击该链接会在一个名字叫showpageFrame的frame里面打开showpage.aspx,打开showpage.aspx时,它就会收到一个QueryString q,可以用如下方法获得该值:
string page = HttpContext.Current.Request.QueryString["page"];
if (page != null)
{
pageframe.Attributes["src"] = page;
}
else
{
pageframe.InnerHtml = "<p>no page name</p>";
}
2.如何控制多个frame
按照上面的方法,只能控制一个frame的渲染效果,如果想控制两个或者更多frame的渲染,可以采取如下的方法。
假设有index.aspx页面,frameset结构如下:
<frameset cols="20%,80%">
<frame name="treeview" frameborder="1" src="navigation.aspx" />
<frameset rows="50%,*">
<frame id="showpageFrame" frameborder="1" name="showpageFrame" src="showpage.aspx" />
<frame id="showcodeFrame" name="showcodeFrame" src="showcode.aspx" />
</frameset>
</frameset>
parent.frames["showpageFrame"].location.href = "showpage.aspx?page=" + showpage;
parent.frames["showcodeFrame"].location.href = "showcode.aspx?codes=" + showcodes;
这样的方法应该就可以控制多个frame的渲染了。
3. TreeView似乎没有onclick属性掉不了javascript怎么办?同时怎么获得TreeNode的Value值和Text值?
不确定TreeView有没有onclick,不过TreeNode肯定没有。可以采用如下的方法。在包含该TreeView的div中添加javascript函数,类似:
<div id="blabla" οnclick="javascript:alert(\"hello\")">
</div>
至于怎么获得TreeNode的Value和Text,这个专门转一篇文章来介绍吧。
不过简单的说就是可以这样:
function GetSelectedNode() {
var selectedNodeID = theForm.elements["<%=TreeView1.ClientID%>_SelectedNode"].value;
if (selectedNodeID != "") {
var selectedNode = document.getElementById(selectedNodeID);
var value = selectedNode.href.substring(selectedNode.href.indexOf(",") + 3, selectedNode.href.length - 2);
var text = selectedNode.innerHTML;
alert("Text = " + text + "\r\n" + "Value = " + value)
}
else {
alert("没有选择节点。")
}
// 也可以使用内置的对象
// var treeViewData = window["<%=TreeView1.ClientID%>" + "_Data"];
// selectedNodeID = treeViewData.selectedNodeID.value
return false;
}
以上代码转自
这里
4. asp.net说不支持frameset怎么办?
直接用就是了。。。
5.出现"潜在危险的客户端输入住"怎么办?
在web.config的<system.web>里面加上如下两个就好了,似乎都是要加的,虽然不知道什么用。
<httpRuntime requestValidationMode="2.0"/>
<pages validateRequest="false">
</pages>
6.有时候一刷新static的数据值就不见了怎么办?
在相应的.aspx文件里面加上EnableViewState="true"就好了