C#随笔20181113

c# 

//列表 

 ArrayList xxxxx = new ArrayList();

//StringBuilder的常用方法

stringbuilder.append   字符串连接

C#页面跳转方式

IsStartupScriptRegistered(Type, String)

 使用指定键和类型确定 Page 对象是否注册了启动脚本。

//弹出窗口两种方式:

1.window.showModalDialog

2.window.open()

希望使用者按下按钮后开启一个保持在原窗口前方的子窗口, 而在IE中,我们可以使用showModalDialog来达成

window.showModalDialog模态窗口:可实现以对话框形式弹出画面,且对话框置顶,不可操作其他画面。
window.open是非阻态窗口,也叫非模态窗口,也就是说当你打开window.open这个子窗口后,还可以切换去操作父窗口。

//弹出文件保存对话库

//弹出的网页对话框dialog中点击文件下载,但下载文件不弹出

弹出对话库:模态,非模态

模态对话库:弹出对话库未关闭,不能操作父对话库

  //showModalDialog 下载文件问题

在模态窗口中直接下载而不弹出新的页面:

既然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 元素会创建包含另外一个文档的内联框架(即行内框架)。

---------------------------------------------

//javascript:__doPostBack未定义

服务器版的.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的冲突

错误的根本原因:

当前页面被嵌套在一个Iframe里面了,当执行这个LinkButton这个按钮的时候,实际上时在父窗口中执行的_PostBack这个函数,而父窗口中又没有生成这个函数,所以会出现错误!

只知道target="_top",会在整个窗口中打开被链接文档,没想到同样可以在父窗口中执行父窗口中定义的js函数。

 

 

JAVASCRIPT模式窗口中下载文件无法接收iframe的流

模式窗口中下载文件,有时在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件

 在打开的模式窗口中,如果要借助于模式窗口接受服务器的流,通常需要隐藏一个iframe;有时候,然后采用iframe.src的形式去做请求;有时,在下载时发现服务器无法接收iframe的流,因为在模式窗口中没有触发iframe的src重新定向事件,普通的窗口无此问题。
具体解决办法:
在模式窗口的父窗口中隐藏一个iframe,下载的地址指向这个iframe.

 

##对__doPostback函数的理解和应用

##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篇

 

.net4.0 不支持IE10

.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……

 

转载于:https://www.cnblogs.com/jeanming/p/9953132.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值