怎样让谷歌浏览器切换兼容模式打开网页

常见 Datagrid 错误

摘要:学习如何避免在使用 ASP.NET Datagrid 控件进行开发时可能发生的一些常见错误(本文包含一些指向英文站点的链接)。

Datagrid 控件是 Microsoft® ASP.NET 中功能最强、用途最广的 Web 控件之一,这一点已经得到了 ASP.NET 权威人士的认同。虽然 Datagrid 控件易于使用,但同样易于给使用者带来麻烦。以下是许多人所犯的一些错误,这些人包括从初学者到富有经验的 .NET 专家。您可以看到许多苦闷的使用者在 ASP.NET 新闻组和论坛就这些错误提出问题。遵循本文概述的相当简单的步骤,可以帮助您避免这些错误,并节约大量的开发时间。

可以使用 Datagrid 创建列表数据而没有使用

我知道您不会再使用如下所示的代码,但 ASP.NET 领域中许多守旧的用户仍在继续使用它们:

Response.Write("<table>")

While MyDataReader.Read()

Response.Write("<tr>")

Response.Write("<td>")

Response.Write(MyDataReader(0))

Response.Write("</td>")

Response.Write("</tr>")

Loop

Response.Write("</table>")

可以对以上代码进行简化,使其仅为:

<asp:datagrid runat="server" datasource="MyDataReader"/>,并调用 .DataBind() 方法。即使需要对 HTML 输出进行特殊的控制,您也可以在用户界面上记录集的内容重复出现的情况下,使用某个数据 Web 控件。

忘记在 Page_Load 事件中检查 IsPostBack

最常见的错误之一是忘记在数据绑定之前检查页面的 IsPostBack 条件。例如,Datagrid 处于“Edit”(编辑)模式时,忽略该项检查将导致已编辑的值被数据源中的原始值覆盖。然而,该规则至少有一个主要的例外,请参阅持续使用大型 ViewState。

以下是包含 IsPostBack 检查的一个典型 Page_Load 事件。BindGrid() 是一个例程,用于导入并设置 Datagrid 的数据源,并调用 DataBind() 方法。

Sub Page_Load

If Not IsPostBack Then

BindGrid()

End If

End Sub

需要更大的灵活性时,仍坚持使用自动生成的列

如果 Datagrid 所处的环境需要任何一种特殊格式,或是需要使用 Datagrid 中的其他任何 Web 控件,那么必须关闭 AutoGenerateColumns。将 AutoGenerateColumns 属性的设置保持为“True”(默认设置)的做法,仅在最简单的 Datagrid 方案中有效。但对几乎所有实际的应用程序,必须将该属性设置为“False”,并在 Datagrid 声明的 <columns></columns> 段中明确地指定列。Microsoft Visual Studio&reg;
.NET 用户可以使用属性生成器以图形化的方式创建这些列。

注意:如果将 AutoGenerateColumns 的设置保持为“True”,并且在 Datagrid 的 <columns> 段中指定了列,那么最终将得到对列的重复设置。系统将首先显示特别声明的列,随后是所有自动生成的列。

尝试仅使用控件 ID 来引用 Datagrid 项目中的控件

许多人没有认识到,对于 Datagrid 的 TemplateColumn 下的 ItemTemplate 中的控件(例如带有“MyTextBox”ID 的 TextBox 控件),不能在后面的代码或是在 ASPX 页面的 <script> 段中用如下所示的代码来直接调用该控件:

Dim MyValue As String = MyTextBox.Text

该代码将导致可怕的“名称‘MyTextBox’没有声明”错误。

因为 Datagrid 是由多个行(项目)组成的,所以数据源中的每一行实际都会有一个单独的“MyTextBox”实例。ASP.NET 在每个控件的 ID 前面加上该控件层次结构中每个命名容器的 ID,这样 Textbox 将具有唯一的 ID,与页面中所有其他控件的 ID 都不相同。例如,如果 MyTextBox 处于 DataGrid1 中,那么生成的 ID 将是 DataGrid1:_ctl2:MyTextBox。“_ctl2”代表
MyTextBox 所处的当前行。页面中其他 MyTextBox 实例的 ID 可能是 DataGrid1:_ctl3:MyTextBox、DataGrid1:_ctl4:MyTextBox 等等。要检索需要查找的“MyTextBox”值,需要对适当的 DataGridItem 调用 FindControl 方法。该 DataGridItem 用作 TextBox 的父命名容器。

HTML:

<asp:Datagrid runat="server" id="Datagrid1">

<Columns>

<asp:TemplateColumn>

<ItemTemplate>

<asp:TextBox runat="server" id="MyTextBox"/>

</ItemTemplate>

</asp:TemplateColumn>

</Columns>

代码:

Sub DataGrid1_UpdateCommand(sender As Object, _

e As DataGridCommandEventArgs)

Dim MyValue As String = _

CType(e.Item.FindControl("MyTextBox"), TextBox).Text

‘对 MyValue 执行操作

End Sub

怎样让谷歌浏览器切换兼容模式打开网页

时间: 2024-11-05 13:28:02

怎样让谷歌浏览器切换兼容模式打开网页的相关文章

PC如何禁用网页在360浏览器里面禁止切换兼容模式

PC如何禁用网页在360浏览器里面禁止切换兼容模式 方法一 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 方法二 <meta name="renderer" content="webkit" /> 注意一下:斜杠前面加个空格 原文地址:https://www.cnblogs.com/jlfw/p/12222678.html

360浏览器兼容模式打开页面错误

今天发布系统之后,客户发现问题说360和傲游都打不开右下角提示的页面而IE8可以打开,右下角图:返回404错误.我回到座位上打开系统看了下,确实如此.我仔细想了下,我平时自己开发模式下就可以,但是为啥发布了就不行了.我仔细看了下我360浏览器.原来我用的都是极速模式,webkit内核.立马切换到兼容模式下,果然挂了.让我郁闷了..话说兼容模式下用的ie内核.自己本机怎么也装的ie8,咋就不行了呢. 我打开前端代码发现有这么一句话:parent.document.getElementById("m

让360浏览器使用特定的模式打开网页(HTML)

众所周知,360浏览器拥有三种模式,极速模式(chrome内核).兼容模式(IE兼容内核).标准模式(IE标准内核),我们可以根据需求让网页默认使用某种内核打开. 360浏览器为我们提供了很简单的解决办法: 默认用极速内核打开,增加标签:<meta name="renderer" content="webkit"/> 默认用IE兼容内核打开,增加标签:<meta name="renderer" content="ie-

关于强制IE不使用兼容模式渲染网页

现在IE11是唯一受微软支持的IE浏览器. IE11有兼容模式,开启后有网页会出错. 在html header标签下加上 <meta http-equiv="X-UA-Compatible" contet="IE=edge"/> <meta name="renderer" content="webkit"/>第一行强制IE禁用兼容模式,第二行强制国内的多核心浏览器使用webkit核心渲染 Stack O

黄聪:如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式

最近用360浏览器访问自己的网站,发现都是被优先选用兼容模式打开,这使得网站很难看.为了让360浏览器打开网站的时候优先试用极速模式,找了一下官方论坛,发现了解决方案. 在head标签中添加一行代码: <html> <head> <meta name="renderer" content="webkit|ie-comp|ie-stand"> </head> <body> </body> <

浏览器兼容模式(转)

三种模式 首先我们要知道,为什么会有这么多模式.其实这是个历史遗留问题,在浏览器大战时期,网景浏览器(Netscape Navigator)和微软的IE浏览器(Microsoft Internet Explorer)对网页分别有不同的实现方式,那个时候的网页要针对这两种浏览器分别开发不同的版本.而到了W3C制定标准之后,这些浏览器就不能继续使用这种页面了,因而会导致大部分现有站点都不能使用.基于这个原因,浏览器才引入两种模式来处理一些遗留的站点. 现在的浏览器排版引擎支持三种模式:怪异(Quir

【踩坑】360安全浏览器“极速模式”和“兼容模式”,套路还是bug?

分享踩坑点: 项目中需要兼容360安全浏览器,大家当然都希望用极速模式打开网站,但是发现总是被兼容模式打开 网址类似 aa.xx.dd.com 网上找了很多地方,有以下两种方法 1.<meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1"> 2.<meta name="renderer" content="webkit"> -------------------

如何将IE浏览器设置为兼容模式

如何将IE浏览器设置为兼容模式打开IE浏览器,进入任意页面点击"工具"选项,会跳出一个下拉菜单,选择"兼容性视图设置"选项.进入兼容性视图设置之后,填入你所需要设置兼容模式的网址,点击添加,勾上:在兼容性视图中显示所有网站,最后点击关闭即可. 原文地址:https://blog.51cto.com/chentongsan/2459468

开发网站时解决360浏览器的兼容性问题,兼容模式打不开,让网页默认为极速模式打开

360浏览器打开网页默认是兼容模式,导致有些网页打不开, 可以在网页头部加上代码,默认改为为极速模式打开,就正常了: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10" />