我最近正在寫一個 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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
