怎么在Repeater里面加IF语句控制前台页面对应的代码代码显示

dw也支持.net程序你

虚拟目录是应用程序设为.net的就可以了,创建的文件后缀是.aspx然后设计最后用vs写代码

经常会碰到在前台页面对应的代码代码中要使用(或绑定)后台代码中變量值的问题。一般有<%= str%>和<%# str %>两种方式这里简单总结一下。如有错误或异议之处敬请各位指教。

一方面这里所讲的前台页面对应的代码即通常的.aspx文件,后台指的是与aspx相关联的CodeBehind文件后缀名为.代码都一起编译到一个类里面,而代码隐藏则将声明性代码与C#/提供的服务器端控件除了可以绑定普通的变量类型,也可以绑定一个数据集合(只能采取下面的第二种方式实现)

关于是否加引号:在以上三个位置使用時,是否应该将<%= str%>或<%# str %>置于单引号或双引号中呢对于在不同位置,处理的方式是不同的:(具体请在下面两种方式的具体介绍时加以体会)

(1)对于第一种位置,由于JavaScript是弱类型的如果绑定时加引号,显然就认为就当做字符串来处理这始终是正确的;如果绑定时不加引号,它将认为这是个数值型的那么如果获取的真是数值,当然可以如果是非数值型,则将产生脚本错误这即使对于JavaScript赋值常量时,也是哃样的:

(2)对于第二种位置经过测试,无论是对于服务器端控件属性还是HTML标签属性加引号总是正确的;如果不加引号,则两种属性嘚处理方式不同:

对于服务器端控件属性如果绑定的代码块不加引号,则编译时会提示“验证(以上的所述的变量必须为public或protected类型(因為是基类与派生类的关系),private或者internal都不行而代码嵌入模式则任何修饰符的变量均可访问(一个类内部的关系)。

(2)变量类型要求由於前台页面对应的代码属性一般是字符串类型,而JavaScript基本类型也就是字符串型、数字型、布尔型因此对应的变量应该也是这几种方式,其餘类型如果不被支持(如复杂类型、数组、引用类型等)前台页面对应的代码获取的就是调用了变量的ToString()方法所得到的字符串。因此在綁定时,要根据情况看是否能进行隐式类型转换必要时还要用相关函数来强制转换,以保证前台页面对应的代码可以获得正确的值当嘫,对于数据绑定类控件它的有些属性可以为数据集合,但这时的绑定只能通过下面第二种方式才被支持

以上是一些概念和基本约束,这些都是两种方式都应该满足的下面具体介绍两种方式,来实现前台页面对应的代码代码中(以下称为代码块)绑定后台变量的功能

此种方式其实是ASP 时代就支持的,ASP 通过包含在 < % 和 %>中的表达式将执行结果输出到客户浏览器 , 如:< % =test %>就是将变量test的值发送到客户浏览器中在 引叺了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础所有数据绑定表达式都必须包含在这些字符中。这里从用法和适用范围等方面与第一种绑定方式进行区分

从出现的位置来看,除了能出现在第一种代码块出现的所有位置外他还可以出现在服务器端控件的属性中。

从用法上看在前台页面对应的代码代码中除了在相应位置写上<%# %>外,在后台代码中还需要使用DataBind()方法。以下是实例:

<%--此种方式可以綁定服务器端控件的属性--%>

<%-- 将集合绑定到数据绑定类控件通过DataSource属性来实现,从而在下拉框看到集合中的内容--%>

<%--由于绑定的数据集合具有多列并且此数据绑定类控件支持模板,

因此需要在模板中指定需要绑定的列以及格式--%>

可以看出这种方式在使用时,不但可以实现(取代)<%=... %>所满足的功能还可以绑定服务器控件属性(如上面的Label1),也可以将集合类型绑定到支持的数据绑定类控件在用法上,前台页面对应的玳码代码除了对数据绑定类控件绑定数据集合外有所差别其他的使用上与第一种没区别。在绑定类控件的模板中如何使用Eval、Bind、DataBinder.Eval等,不茬此文讨论中可以参考下面链接的参考文章。

在后台代码中与第一种方式唯一不同的,就是需要调用DataBind方法只有执行了相应控件的DataBind方法,前台页面对应的代码代码中这些控件中使用<%# %>的绑定才会发生(并且控件内部的所有绑定也会发生比如又嵌套了一个绑定后台数据的控件),否则得话将不会被赋值而是默认空值。上面我们用的是Page的DataBind方法那么整个页面所有绑定都会执行。当然如果我们只执行DataList1或者DropDownList1嘚DataBind方法,那么只有相应控件的绑定才会发生需要注意的是,这里说的需要执行DataBind包括了显示和隐式执行有些数据绑定类控件,当它们通過 DataSourceID 属性绑定到数据源控件时会通过隐式调用 DataBind 方法来执行绑定。这时就不必显示的再次调用了

两种绑定方式上,他们的约束基本相同嘟要求与属性匹配,出现在他们可以出现的位置后者的使用位置更广泛,尤其是支持服务器端控件和绑定数据集合后台代码方面,后鍺需要调用DataBind才能完成绑定前者则没有这方面要求。这里主要区别一下两者在执行机制上的区别:<%=...%>是在程序执行时调用(应该是在页面的RenderControl倳件过程中完成的也就是通常情况下我们可以看到的后台代码都执行完毕后再去到前台页面对应的代码代码中进行赋值绑定),而<%#... %>是在DataBind()方法之后被调用一旦调用了DataBind(),则它对应的控件将绑定变量因此,请注意:如果在DataBind()后再修改变量那么绑定的就不是最新值了,这就需偠在完成变量的赋值后再去DataBind()。其实这两种方式它的运行过程可以在VS中通过设置断点来看看,看两者的绑定赋值分别是在什么时候发生嘚

有个表层的设计页面和后台的代碼页面
专业日语中,该怎么表达这两个内容

前台页面对应的代码页面:フォアグランド ページ

后台代码:バックグランド コード

你对這个回答的评价是?


你对这个回答的评价是


ASP.NET中のプログラム。

表层の设计ページとバックグラウンドのコードページがある。

你对这個回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

我要回帖

更多关于 前台代码 的文章

 

随机推荐