|
我最近正在寫一個 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文件中的部分內容:
<asp:Repeater ID="_TopicRepeater" Runat="SERVER" DataSource="...">
<ItemTemplate>
?? ?<%# DataBinder.Eval(Container.DataItem, "Title") %>
??? <%# DataBinder.Eval(Container.DataItem, "Author") %>
??? <%# DataBinder.Eval(Container.DataItem, "Clicked") %>
??? <%# DataBinder.Eval(Container.DataItem, "ReCount") %>
??? <
!-- 注意下面的if語句 --
>
???
<%
if
((
int
)(DataBinder.Eval(Container.DataItem,
"ReCount"
))==0){ %>
??? ??? ----
???
<% }
else
{ %>
?????? <%# DataBinder.Eval(Container.DataItem, "LastReplyer") %>
???
<% } %>
</ItemTemplate>
</asp:Repeater>
使用if語句的目的是在于:判斷當前帖子的回復次數為 0 時,就將 LastReplyer 這項顯示成“----”。而當前的帖子的回復次數不為 0 時,則顯示回復人的名字。但是,這樣的做法是行不通的。在IE中會出現類似的警告
<%# ((
int
)(DataBinder.Eval(Container.DataItem,
"ReCount"
))==0)
?? ??
"----"
?? ?: DataBinder.Eval(Container.DataItem,
"LastReplyer"
) %>
可問題是,對于復雜的判斷處理,這樣的做法就相當困難了。
<%
int
_nIndex=0; %>
<
!--定義一個臨時的整型變量--
>
<asp:Repeater ID="_TopicRepeater" Runat="SERVER" DataSource="...">
<ItemTemplate>
?? ?<%# DataBinder.Eval(Container.DataItem, "Title") %>
? ??<%# DataBinder.Eval(Container.DataItem, "Author") %>
?? ?<%# DataBinder.Eval(Container.DataItem, "Clicked") %>
??? <%# DataBinder.Eval(Container.DataItem, "ReCount") %>
<%
int
nReCount=(
int
)(((DataView)_TopicRepeater.DataSource).Table.Rows[_nIndex++][
"ReCount"
]);
// 也可以分成幾句來寫 // DataView DV=(DataView)_TopicRepeater.DataSource; // DV.Table.Rows[_nIndex++]["ReCount"];
if
(nReCount==0) { %>
???? ----
<% }
else
{ %>
??? <%# DataBinder.Eval(Container.DataItem, "LastReplyer") %>
<% } %>
</ItemTemplate>
</asp:Repeater>
其基本思路是,得到 _TopicRepeater 的數據源(DataSource)
|
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

