0x1A——ASP.NET开发小记

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>";
        }

虽然没有说是否一定要判断这个QueryString存在,但我觉得最好还是判断一下。另外,如果有多个,就用&符号链接,类似para1=value1&para2=value2。没有办法传数组的样子,如果想传数组,那么就把数组拼成一个字符串传过去吧。

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>

然后在treeview的frame中,即navigation.aspx想同时控制showpageFrame和showcodeFrame的渲染效果,可以在navigation.aspx中添加如下javascript代码,在点击按钮或其他链接后执行这几行即可:
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"就好了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值