惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
C
Cybersecurity and Infrastructure Security Agency CISA
Cisco Talos Blog
Cisco Talos Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
Project Zero
Project Zero
E
Exploit-DB.com RSS Feed
S
Secure Thoughts
K
Kaspersky official blog
L
Lohrmann on Cybersecurity
NISL@THU
NISL@THU
WordPress大学
WordPress大学
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
小众软件
小众软件
P
Privacy & Cybersecurity Law Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
Hacker News: Ask HN
Hacker News: Ask HN
AWS News Blog
AWS News Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hacker News: Front Page
F
Full Disclosure
Latest news
Latest news
Schneier on Security
Schneier on Security
The Hacker News
The Hacker News
T
Troy Hunt's Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
Martin Fowler
Martin Fowler
P
Proofpoint News Feed
TaoSecurity Blog
TaoSecurity Blog
G
GRAHAM CLULEY
Forbes - Security
Forbes - Security
V
V2EX - 技术
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Vulnerabilities – Threatpost
C
Cyber Attacks, Cyber Crime and Cyber Security
MongoDB | Blog
MongoDB | Blog
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
P
Privacy International News Feed
C
Check Point Blog
N
News and Events Feed by Topic

博客园 - point.deng

Pinax安装笔记 CuteEditor使用心得 悬浮的购物车 - point.deng - 博客园 DIV+CSS实现圆角 欢迎使用我的控件 有用的SQL语句,更新中~ asp.net 实现多语言界面 关于WebService中SOAP扩展求助~~ - point.deng - 博客园 同一账号多次登录 WEB自定义控件小记 C# 使用HOOK 小记 视频转为flv和图片 Asp.net上传图片产生预览效果(转) asp.net2.0用户和角色管理 javascript 练习 Ajax示例 asp.net开发小技巧 Master Page主题以及皮肤的使用 ASP.NET 2.0网站快速导航
asp.net 中的default button
point.deng · 2008-07-07 · via 博客园 - point.deng

今天遇到个问题,搞得很郁闷,换了几种方法才解决了,因为过程中搞得很心烦,更怕过后会忘了,特此笔记。
用户要求在一个文本输入框中按回车后,就相当于是点击了边下的“查找”,这看似一个很简单的东西,可做起来,有时候并不是想象中的容易。
方法一:可能很多人都会想,把Form的DefaultButton设为那个BUTTON不就完了吗!但是我这里情况不太一样,由于引用了母版页,而这个文件框是处在内容页中,且当按回车时,会自动执行母版页中的另一个BUTTON,所以只是简单地设置DefalutButton,是不行的~~
方法二:调用__doPostBack,其它这是一个很好的办法,一个asp.net页面,只要页面上在LinkButton.那么在客户端不难找到这样一个JS方法:
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}

在asp.net中,每一个服务器控件都是submit,这个方法其实是记录了当前是那一个控件在执行提交,可以从 Response.Write(Request["__EVENTTARGET"]+"<br>");中看出名堂。那么当用户按回车时,就可以调这个方法,第一个参数为控件的ID,第二个参数为空。心里正欢喜着...事实证明,这个方法在我那个地方是不可行的,它还是会执行母版页中的另一个BUTTON,方法如下:
<script type="text/javascript">
function search(e,buttonid)
{
    var bt = document.getElementById(buttonid);
    if(event.keyCode=="13")
    {
        __doPostBack(bt,"");
        return false;
    }
}
</script>

后台:txtSearch.Attributes.Add("onkeydown", "return  search(event,'" + btnSearch.ClientID + "')");
在我万分失望的时候,是互联网给了我活力!
我有幸找到了一篇外国的文章(http://seesharp.spaces.live.com/blog/cns!8ae98e426889665f!299.entry
虽然本人英语很菜,但由于急于解决问题,那上面所讲的我还是看明白了(部分~)
方法三:改一下JS方法,其实就是用JS来执行BUTTON的click方法,看人家国外的文章就是不一样,都是些精华呀,看到提高英语已是迫在眉睫的事情了!。

<script type="text/javascript">
function search(e,buttonid)
{
    var bt = document.getElementById(buttonid);
   
    if (typeof bt == 'object')
    {
            if(navigator.appName.indexOf("Netscape")>(-1))
            {
                  if (e.keyCode == 13)
                  {
                        bt.click();
                        return false;
                  }
            }
            if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1))
            {
                  if (event.keyCode == 13)
                  {
                        bt.click();
                        return false;
                  }
            }
      }

}
</script>

这里包括了对浏览器类型的判断,以达到兼容的效果。
如此,累了多时的任务终于完成了,看来小问题也不能小看啦。