2013-6-29

1. 未定义的命名空间前缀“xsd”

上周在项目开发中遇到这样的一个问题,在一个页面用到了自定义的Picker控件,在IE6、7、8、9以及IE10兼容模式下都没有任何问题,但是一换到IE10时已选择相应的Picker项时就会报错。错误提示为“未定义的命名空间前缀‘xsd’”。

在网上找到了相应的解决方案,说是只要在使用自定义控件的页的<head></head>标签中添加以下代码即可:

<meta http-equiv="X-UA-Compatible" content="IE=8"/>

但是试过之后依然不行,然后接着在网上搜了下以上的那行代码,又找到了一篇相应的文章。

X-UA-Compatible是针对 IE8 版本的一个特殊文件头标记,用于为 IE8 指定不同的页面渲染模式,对于ie8之外的浏览器是不识别的。目前绝大多数网站都用<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >来作为IE8的兼容方法。为了解决在IE10下出现的页面错误,这里我直接将IE10使用IE8作渲染。即在〈head〉</head>节点中添加如下代码:

<meta http-equiv="X-UA-Compatible" content="I EmulateIE8" />

或许有人会问了,EmulateIE8跟8有什么区别呢?请看下图:

渲染引擎示意图

从图中可以看到,EmulateIE8所支持的范围远远要比IE8高很多,所以使用EmulateIE8更能够包容很多兼容性的问题。关于浏览器模式问题,有兴趣的朋友可以参考一下文章http://yiminghe.iteye.com/blog/802021

2.    <%%>、<%=%>、<%$%>、<%#%>、<%@%>各自的用法

<%%>

主要用在HTML页中,在<%%>之间可以写后台的服务端代码。如下:

<%

For(int i=0;i<116;i++)

{

i=i+1;

}

%>

<%=%>

等价于Response.Write,主要用于获取后台的变量/属性值,或者调用后台有返回值的函数。如下所示:

<Label id=”lb1” runat=”server” text=’<%=SayHello(‘Olive’)%>’/>

后台有一个SayHello函数,返回值为string

Public string SayHello(string name)

{

Return “hello “+name;

}

这里需要注意两点。

  1. 所调用的后台函数访问属性至少要在protected以上,否则前台页面是访问不到后台的函数的。
  2. 所访问的后台函数必须有返回值,如果没有返回值就会报错。

<%$%>

表达式的一个常见用途是根据存储在 Web.config 文件中的连接字符串的值设置控件(如 SqlDataSource 控件)的连接字符串属性。例如,您可能具有包含连接字符串属性的以下 SqlDataSource 控件:
<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
    SelectCommand="SELECT * FROM [Test]"
    ConnectionString="<%$ ConnectionStrings:TestConnectionString %>">
</asp:SqlDataSource>

<%#%>

该语法多用于asp.net数据绑定控件的绑定语法,一般的形式如下:

<%#Eval(‘字段名’)%>或<%#Bind(‘字段名’)%>,这两种方式分别为静态和动态绑定

<%@%>

该语法主要是用来导入,最熟悉的场景就是在aspx页的顶部都会有,如下的代码:

<%@Page.......%>

该行代码的意思是定义Asp.NET页分析器和编译器使用的特定于页的属性,只能包含在aspx页中。

除此之外还有其他的引用如下,有兴趣的朋友可以自行参考。

@ Control 
定义 ASP.NET 页分析器和编译器使用的控件特定属性。只能包含在 .ascx 文件(用户控件)中。
@ Import 
将命名空间显式导入页或用户控件中。
@ Implements 
以声明的方式指示页或用户控件实现指定的 .NET Framework 接口。
@ Register 
将别名与命名空间及类名关联起来,从而允许用户控件和自定义服务器控件在被包括到请求的页或用户控件时呈现。
@ Assembly 
在编译过程中将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。
@ Master 
标识 ASP.NET 母版页。
@ PreviousPageType 
提供用于获得上一页的强类型的方法,可通过 PreviousPage 属性访问上一页。
@ MasterType 
为 ASP.NET 页的 Master 属性分配类名,使得该页可以获取对母版页成员的强类型引用。
@ OutputCache 
以声明的方式控制页或用户控件的输出缓存策略。
@ Reference 
以声明的方式将页或用户控件链接到当前页或用户控件。

今天就总结到这里,希望可以给大家带来些帮助。

每日学习心得:未定义的命名空间前缀"xsd"问题和<%%>、<%=%>、<%$%>、<%@%>的区别的更多相关文章

  1. 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

    前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...

  2. 每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容

    前言: 这里主要是针对列表中的文件下新增子项的操作,同时在新建子项时,可以为子项指定特定的内容类型,在某些时候需要查询指定的文件夹下的内容,针对这些场景都一一给力示例和说明,都是一些很小的知识点,希望 ...

  3. 每日学习心得:Js基本数据类型常用方法扩展

    2014-02-17 前言: 节后的第一周上班,整个状态调整的还不错,已完全进入正常的工作状态.这一周主要还是对年前项目存在的一些问题进行完善.修整,基本上没有做大的改动.这里就把项目中经常用到的一些 ...

  4. 每日学习心得:$.extend()方法和(function($){...})(jQuery)详解

    2014-02-09 前言: 节后头两天上班,主要是调整工作状态.项目也不是很紧,趁着周末把年前遇到了一些关于JS和JQuery的一些问题给总结一下.主要是介绍JQuery的extend方法和(fun ...

  5. 每日学习心得:UEditor样式被过滤无法显示问题

    前言: 上周开发中有用到开源的富文本编辑器UEditor,在使用的过程中遇到了样式被过滤无法显示问题,经过一番折腾终解决,此外,还有一些关于获取前台界面元素的一些总结. 1. UEditor样式被过滤 ...

  6. 每日学习心得:Js获取Checkboxlist所选值、instanceof 和typeof区别、为Array添加contains方法

    2013-11-24 前言: 上周在工作中遇到了一些跟JS以及前台交互的问题,虽然算不上多么高深,但是在解决时也走了一些弯路,所以就总结一下. 1.    JS获取checkboxList所选的值 这 ...

  7. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  8. 每日学习心得:SQL查询表的行列转换/小计/统计(with rollup,with cube,pivot解析)

    2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL ...

  9. 每日学习心得:Linq解决DataTable按照某一列的值排序问题/DataTable 导出CSV文件/巧用text-overflow解决数据绑定列数据展示过长问题

    2013-8-5 1 Linq解决DataTable按照某一列的值排序 在之前的总结中提到过对拼接而成的复合的DataTable按照某一列值的大小排序,那个主要的思想是在新建表结构时将要排序的那一列的 ...

随机推荐

  1. 如何重置mysql的密码

    如何重置mysql的密码 如果知道密码,则通过以下方式修改: gaurav@gaurav:~$ mysql --user=root --pass mysql Enter password: mysql ...

  2. magento首页调用最新产品

    这个需要我们自己添加一个block块供我们调用,可参考new products的block类,建立文件app/code/core/Mage/Catalog/Block/Product/Special. ...

  3. Java学习第二天

    一.两个常用工具 1.随机生产一个[0,1)之间的数 Math.random() 举例: double box =Math.random(); //产生随机小数 [0,1) System.out.pr ...

  4. json-c-0.9 的简单用法

    1.下载安装包路径: wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz 2.解压安装包 tar zxvf json-c-0.9.tar ...

  5. PAT (Basic Level) Practise:1001. 害死人不偿命的(3n+1)猜想

    [题目链接] 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在19 ...

  6. MySQL安装常见错误及解决方案

    错误1:wizard安装最后一页,出现cannot create Windows service for mysql.error:0 错误 解决方法:打开命令行 输入 sc delete mysql ...

  7. CUDA 程序中的同步

    前言 在并发,多线程环境下,同步是一个很重要的环节.同步即是指进程/线程之间的执行顺序约定. 本文将介绍如何通过共享内存机制实现块内多线程之间的同步. 至于块之间的同步,需要使用到 global me ...

  8. Single Number II ——位操作

    题意: 给定两个32位的整数 N 和 M,以及表示比特位置的 i 与 j .编写一个方法,将 M 插入 N,使得 M 从 N 的第 j 位开始,到第 i 位结束.假定从 j 位到 i 位足以容纳M. ...

  9. 222. Count Complete Tree Nodes

    Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from W ...

  10. 343. Integer Break

    Given a positive integer n, break it into the sum of at least two positive integers and maximize the ...