最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
在Repeater控件中使用if语句
时间:2022-06-30 11:12:46 编辑:袖梨 来源:一聚教程网
我最近正在写一个 BBS 的项目,在显示主题列表时,我遇到了一个问题。
BBS_Topic 的数据表结构定义大致是下面这样:
TABLE BBS_Topic
(
TopicID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
Title NVARCHAR(40),
Author NVARCHAR(20),
PostDate DATETIME NOT NULL DEFAULT GETDATE(),
Content NTEXT,
Clicked INT NOT NULL DEFAULT 0,
ReCount INT NOT NULL DEFAULT 0,
LastReplyer NVARCHAR(20)
)
下面是ListTopic.aspx文件中的部分内容:
<%# DataBinder.Eval(Container.DataItem, "Title") %>
<%# DataBinder.Eval(Container.DataItem, "Author") %>
<%# DataBinder.Eval(Container.DataItem, "Clicked") %>
<%# DataBinder.Eval(Container.DataItem, "ReCount") %>
<% if((int)(DataBinder.Eval(Container.DataItem, "ReCount"))==0){ %>
----
<% } else { %>
<%# DataBinder.Eval(Container.DataItem, "LastReplyer") %>
<% } %>
使用if语句的目的是在于:判断当前帖子的回复次数为 0 时,就将 LastReplyer 这项显示成“----”。而当前的帖子的回复次数不为 0 时,则显示回复人的名字。但是,这样的做法是行不通的。在IE中会出现类似的警告
编译器错误信息: CS0246: 找不到类型或命名空间名称“Container”(是否缺少 using 指令或程序集引用?)
即便,根据这个错误提示,将所有可能用到的命名空间全都 Import 到这个文件里,也还是会提示其他错误信息的。至于为什么这样?可能是因为 DataBinder.Eval 和 Container.DataItem 同属 Repeater 类的成员的缘故。
“<%# %>”就是“作用”在 Repeater 上,但是 “if ... else ...” 语句则不同,它是“作用”在整个页面上。这就象是在全局过程中直接访问局部变量。当然,用类似下面(三目运算)的语句也可以实现上述功能:
BBS_Topic 的数据表结构定义大致是下面这样:
TABLE BBS_Topic
(
TopicID INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
Title NVARCHAR(40),
Author NVARCHAR(20),
PostDate DATETIME NOT NULL DEFAULT GETDATE(),
Content NTEXT,
Clicked INT NOT NULL DEFAULT 0,
ReCount INT NOT NULL DEFAULT 0,
LastReplyer NVARCHAR(20)
)
下面是ListTopic.aspx文件中的部分内容:
<%# DataBinder.Eval(Container.DataItem, "Title") %>
<%# DataBinder.Eval(Container.DataItem, "Author") %>
<%# DataBinder.Eval(Container.DataItem, "Clicked") %>
<%# DataBinder.Eval(Container.DataItem, "ReCount") %>
<% if((int)(DataBinder.Eval(Container.DataItem, "ReCount"))==0){ %>
----
<% } else { %>
<%# DataBinder.Eval(Container.DataItem, "LastReplyer") %>
<% } %>
使用if语句的目的是在于:判断当前帖子的回复次数为 0 时,就将 LastReplyer 这项显示成“----”。而当前的帖子的回复次数不为 0 时,则显示回复人的名字。但是,这样的做法是行不通的。在IE中会出现类似的警告
编译器错误信息: CS0246: 找不到类型或命名空间名称“Container”(是否缺少 using 指令或程序集引用?)
即便,根据这个错误提示,将所有可能用到的命名空间全都 Import 到这个文件里,也还是会提示其他错误信息的。至于为什么这样?可能是因为 DataBinder.Eval 和 Container.DataItem 同属 Repeater 类的成员的缘故。
“<%# %>”就是“作用”在 Repeater 上,但是 “if ... else ...” 语句则不同,它是“作用”在整个页面上。这就象是在全局过程中直接访问局部变量。当然,用类似下面(三目运算)的语句也可以实现上述功能:
相关文章
- 百炼英雄怎么挂机 挂机方式及各等级最优点位攻略 12-15
- 百炼英雄vip礼包码大全 最新可用vip礼包码 12-15
- 光与影33号远征队符文收集:强力复生符文效果及获取方式详解 12-15
- 百炼英雄兑换码有哪些 最新可用兑换码及兑换方式 12-15
- 神器传说怎么克制闪避流 闪避流克制阵容实战攻略 12-15
- 神器传说怎么打异兽分最高 异兽冲榜高分搭配 12-15