c#
//列表
ArrayList xxxxx = new ArrayList();
//StringBuilder的常用方法
stringbuilder.append 字符串连接
IsStartupScriptRegistered(Type, String)
使用指定键和类型确定 Page 对象是否注册了启动脚本。
//弹出窗口两种方式:
1.window.showModalDialog
2.window.open()
希望使用者按下按钮后开启一个保持在原窗口前方的子窗口, 而在IE中,我们可以使用showModalDialog来达成
window.showModalDialog模态窗口:可实现以对话框形式弹出画面,且对话框置顶,不可操作其他画面。
window.open是非阻态窗口,也叫非模态窗口,也就是说当你打开window.open这个子窗口后,还可以切换去操作父窗口。
//弹出文件保存对话库
//弹出的网页对话框dialog中点击文件下载,但下载文件不弹出
弹出对话库:模态,非模态
模态对话库:弹出对话库未关闭,不能操作父对话库
在模态窗口中直接下载而不弹出新的页面:
既然target=_self的时候有问题,target=_blank的时候又会弹出新的页面
这让我想到了在框架中打开新窗口的做法。
在页面中加一个看不到的框架,然后把target设为框架名应该可以解决。随后在页面中再加了一个大小为0的iframe
<iframe id="download" name="download" height="0px" width="0px"></iframe><!--用iframe模拟文件下载-->
然后重新修改<base>标签target为框架名:
<base target="download"> 重新生成
3、模态窗口前台需要注意的是需要在head 标签和body标签中加入如下代码:
<head runat="server">
<base target="download"/>
</head>
<body class="table_b">
<iframe id="download" name="download" height="0px" width="0px"></iframe>
</body>
---------------------------------
//HTML <iframe> 标签
iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。
---------------------------------------------
服务器版的.Net4.0的补丁(微软官方补丁已失效)没有打上,ASP.NET 可能无法辨识出一些浏览器的最新版本,还会经常把它们看做是低级的浏览器,不支持JAVASCRIPT。
https://www.cnblogs.com/Moosdau/p/3474138.html
没法打补丁的话,告诉你一个笨办法,不要用 LinkButton,用一个隐藏的 <asp:button>,像这样子:
< a href="javascript:document.getElementById('aspbutton').click();">保存</a>
< asp:button id="btnSave" runat="server" style="display:none;" />
asp:button 不使用 __doPostBack 方法
错误的根本原因:
当前页面被嵌套在一个Iframe里面了,当执行这个LinkButton这个按钮的时候,实际上时在父窗口中执行的_PostBack这个函数,而父窗口中又没有生成这个函数,所以会出现错误!
只知道target="_top",会在整个窗口中打开被链接文档,没想到同样可以在父窗口中执行父窗口中定义的js函数。
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
模式窗口中下载文件,有时在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件
在打开的模式窗口中,如果要借助于模式窗口接受服务器的流,通常需要隐藏一个iframe;有时候,然后采用iframe.src的形式去做请求;有时,在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件,普通的窗口无此问题。
具体解决办法:
在模式窗口的父窗口中隐藏一个iframe,下载的地址指向这个iframe.
##ASP.NET 控件中AutoPostBack属性:动态交互功能 AutoPostBack="true",与服务器交互:当此控件的某事件发生时,将发送一个request到服务器。
###DropDownList.AutoPostBack 属性
的SelectedIndexChanged事件 ###TextBox.AutoPostBack 属性
,在控件中按 Enter 或 Tab 键时,都会自动回发到服务器。
###Button按钮没有AutoPostBack属性,但Click事件会自动执行回发操作。 ####在一个asp页面中实现2个dropdownlist联动时,dropdownlist1的加载数据事件一定要写在if(!IsPostBack){}中。 因为dropdownlist1在触发SelectedIndexChanged时会向服务器回发数据,这个时候Page_Load事件会再次触发,会造成dropdownlist1数据的重复绑定,联动操作会失败。
##JavaScript父窗口与子窗口之间的操作总结---window.open篇
.net framework4.5.1之前的版本有一个非常愚蠢的设定, 它为每个浏览器设置了一个浏览器定义文件, 通过正则表达式来匹配浏览器的userAgent, 然后来定义一些功能集.
这种做法有一个显而易见的问题, 浏览器是会经常升级的, 每次升级后, userAgent都会有变化, 这就导致.net framework的正则表达式跟新版本的浏览器匹配失败, 于是新版本浏览器被认定为"无法识别的浏览器", 对这种"无法识别的浏览器", .net framework的决定是: 大部分的功能不予支持, 其中javascript就是不被支持的功能之一.
当.net 4.0发布时, IE浏览器的最高版本是9.0, 于是.net 4.0的浏览器定义文件只能识别IE6-9, 当用IE10访问.net 4.0的网站时, 最经常看到的错误提示就是"__doPostBack is not defined", 之所以会报__doPostBack未定义, 是因为这个函数本来应该由.net framework自动生成, 但是由于IE10被标记为不支持javascript, 所以服务器端发回的文件中就不包括任何的js代码, 于是页面上的函数尝试调用__doPostBack时, 就会报错.
所以实际上,这个错误只是个表象,真正的原因是脚本被服务器端禁用了.
.net 4.5.1终于从前两次的事故中吸取了一点教训, 它并没有定义一个新的用于识别IE11的正则表达式, 而是增强了通用浏览器的功能支持, 于是这条规则可以这样描述: 凡是被识别为"Mozilla"的浏览器, 增强其功能, 使它支持javascript, 以及其它几项以前不支持的功能. 而IE11的userAgent就是以Mozilla打头的, 所以将作为Mozilla通用浏览器进行处理.
顺带着说一句: 现在的浏览器基本上都是以Mozilla打头的, 如firefox, chrome, ie10以上版本, 其userAgent都是Mozilla/5.0 开头. 所以几乎可以说, Mozilla浏览器就意味着"现代通用浏览器". 更有意思的是, IE11 的appName竟然改成了Netscape, 而不再是Microsoft Internet Explorer, 从种程度上来说, IE10即是最后一版"IE".
不想或不能安装.net 4.5.1的服务器如何处理? 没办法, 只能手工处理.
实际上这个浏览器定义文件也很简单, 它位于c:\Windows\Microsoft.Net\Framework\v4.xxx\Config\Browsers\ 文件夹下, (对于64位的服务器,会有Framework和Framework(64)两个文件夹, 我看了一下,这两个文件夹下的浏览器定义文件是一样的, 究竟是哪个在起作用, 我也不清楚, 保险起见, 修改的时候最好两个地方都改) 在这个文件夹下会看到10个左右扩展名为.browser的文件, 其中ie.browser即是用来识别ie6-10 的, default.browser是默认的"不能识别的浏览器", generic.browser中保存着对Mozilla浏览器的处理方式. 因此, 需要修改的就是这个文件.
excel函数
VLOOKUP
IFNA
IFERROR
IFNA(IFERROR(VLOOKUP(N:N,sheet2!A:C,3,0),VLOOKUP(N:N,sheet2!B:C,2,0)),"")
VBA
alt+F11 调出代码 窗口
excel工具栏空白处右击调出拖动按钮至excel……