ASP.NET AJAX Advance Tips & Tricks (9)

DropDownList在Firefox下的奇怪现象和解决方案——谁的BUG?

前言:

今天在ASP.NET Forum里面遇到了一个及其怪异的问题,一个看似非常简单的demo在IE及其它浏览器中 正常运行,然而在Firefox中却导致了奇怪的问题,使页面中的DropDownList死掉,经过研究,终于找到 了一个解决方案,但此问题是谁的Bug仍不得而知。

问题重现:

一个ScriptManager

一个DropDownList

一个UpdatePanel,内有一个Button

在按钮点击事件中使用ScriptManager.RegisterStartupScript来输出一个window.alert

OK,够简单吧?!代码如下:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0  Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
    protected void Page_Load(object sender, EventArgs e) { }

    protected void Button1_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(this.Button2, Button2.GetType(),  "CodeAlert", "alert('kao!');", true);
        Button2.Text = "Updated " + DateTime.Now.ToString();
    }

</script>

<html>
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
    </div>
    <asp:DropDownList ID="DropDownList1" runat="server">
        <asp:ListItem>Text1</asp:ListItem>
        <asp:ListItem>Text2</asp:ListItem>
        <asp:ListItem>Text3</asp:ListItem>
        <asp:ListItem>Text4</asp:ListItem>
        <asp:ListItem>Text5</asp:ListItem>
    </asp:DropDownList>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Button ID="Button2" runat="server" Text="Button"  OnClick="Button1_Click" />
        </ContentTemplate>
    </asp:UpdatePanel>
    </form>
</body>
</html>

时间: 2024-11-17 16:01:19

ASP.NET AJAX Advance Tips &amp; Tricks (9)的相关文章

ASP.NET AJAX Advance Tips &amp;amp; Tricks(11) 三种方法动态创建Tooltip

前言 如何动态创建提示框(Tooltip)是ASP.NET Forum里的常见问题之一,在做技术支持时,我曾在英文 博客上总结过ASP.NET和ASP.NET AJAX环境下如何动态创建提示框的三种常见方法,比较基础,收到了蛮 多老外们的commend,如今英文博客被墙,特转到这里来与大家分享. 原文地址: http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/ http://lancezhang.wordpr

ASP.NET AJAX Advance Tips &amp;amp; Tricks (7) ASP.NET AJAX与URLRewriting

前言: 最近一些使用URLRewriting的朋友们有时候会遇到ASP.NET AJAX和AJAX Control Toolkit控件不能正 常工作的现象,对于没有相关经验的开发者来说相当棘手.本篇通过案例分析和相对的解决方案来讨论在 使用ASP.NET AJAX 与 URLRewriting 时应当注意到的一些兼容性问题. 问题重现: 一般简单的URLRewriting应用都是对来自客户端对资源的Request进行路径重定向,比较典型的写法如 同下列代码1 和代码2: 代码1: // If t

ASP.NET AJAX Advance Tips &amp;amp; Tricks (6)

AJAX Control Toolkit与Virtual Earth的兼容问题 前言: Virtual Earth作为微软的地图服务,在技术和实用性上与Google Map有的一拼,某些方面还比Google Map做的要好,用的人也越来越多了.但由于其JavaScript的高度封装特性,最近遇到了不少Virtual Earth与ASP.NET AJAX不兼容的情况.案例既多又复杂,本篇通过一个有代表性的例子来讨论两者的兼容 ,希望能帮助遇到此麻烦的开发者解决问题. 问题重现: 下面的代码将一个V

ASP.NET AJAX Advance Tips &amp;amp; Tricks (5) UpdatePanel与jQuery

前言 现在越来越多的朋友喜欢将jQuery和ASP.NET AJAX 一起来用,最近,许多印度人在forum里抱怨说 UpdatePanel和jQuery不兼容,许多jQuery效果在UpdatePanel更新之后就不work.本篇通过分析两者的框 架结构来解决这个兼容性问题. 问题重现: 1.在页面中添加ScriptManager和UpdatePanel 2.在UpdatePanel中添加元素A 3.用jQuery对元素A添加X效果 4.在UpdatePanel中加一个ButtonB用作pos

ASP.NET AJAX Advance Tips &amp;amp; Tricks (4)

ASP.NET AJAX Performance Improvement Preface I think everyone would agree that AJAX is one of the elements of "Web 2.0", every web developers should know this technology. I have been collected a list of the popular AJAX Frameworks on my chinese

ASP.NET AJAX Advance Tips &amp;amp; Tricks (3) JavaScript与Tab的交互

前言 ASP.NET AJAX Control Toolkit 中的Tab控件非常简单易用,对服务端和客户端的支持都非常不错. 本篇通过几个FAQ给大家介绍Tab和JavaScript的常用交互,以及应该注意到的问题. 1. TabCantainer的JavaScript接口 目前的Tab控件很多,而Altas的Tab控件有点在于JavaScript接口非常丰富,而且非常便于理解和使用 ,一般常用的有以下几组: get_headerText//获取标题文字 set_headerText//设置标

ASP.NET AJAX Advance Tips &amp;amp; Tricks (2)

动态创建Rating控件不能保存ViewState的解决方案 前言: Rating控件用来标识分级,目前已经有广泛应用.AJAX Control Toolkit中的Rating也做的相当成熟 ,也算是ASP.NET AJAX扩展中做的最像传统服务端控件的一个了.然而,最近很多朋友抱怨说如果在后台 代码中动态创建Rating控件,那么在PostBack发生后,Rating的状态将会丢失(未存入ViewState).本 文介绍两种方法来解决此问题. 问题重现: 如果按以下代码动态创建Rating控件

ASP.NET AJAX Advance Tips &amp;amp; Tricks (1)

CascadingDropDown在IE和Safari中的一个缺陷和解决方法 前言: ASP.NET AJAX Toolkit中的CascadingDropDown简单易用,但在IE和Safari中有一个比较明显的性能缺 陷,当数据量大,并且用户使用鼠标滚轮或键盘上下键选取选项时,这个缺陷非常明显.本文介绍通过修 改Toolkit源代码来解决这个问题.(这个问题应该会比较争议,也许很多人并不将其视为缺陷,视情况 而定吧) 问题重现: 大家可以到ASP.NET AJAX Toolkit官方展示页面

ASP.NET AJAX Advance Tips &amp;amp; Tricks (10)

解决使用AJAX Extender时的页面导出(Word/Excel)问题 前言: 有客户问到这么个问题:我们可以使用Response容易地将ASP.NET页面导出为Excel或Word.然而,如 果有AJAX Control Toolkit的Extender在页面上的话,则会发生错误(Extender control 'XXX' is not a registered extender control).我搜索了一下,ASP.NET forum里有很多这样的问题未能解决,故写了 这个解决方案,