<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blog.Toby

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      130 隨筆 :: 2 文章 :: 150 評論 :: 0 Trackbacks
    我最近在寫一個BBS的項目,在顯示主題列表時,我遇到了一個問題。  
       
      BBS_Topic的數(shù)據(jù)表結構定義類似下面這樣:  
       
      TABLE   BBS_Topic  
      (  
      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語句的目的,是在于:判斷當前帖子的回復次數(shù)為0時,就將LastReplyer這項顯示成“----”  
       
      而當前的帖子的回復次數(shù)不為0時,則顯示回復人的名字  
       
      但是,這樣的做法是行不通的。在IE中會出現(xiàn)類似的警告“沒有引用Container,使用using引用...”  
       
      至于為什么這樣?可能是因為DataBinder.Eval和Container.DataItem同屬Repeater類的成員的緣故。  
       
      “<%#   %>”就是“作用”在Repeater上,但是if語句則不同,它是“作用”在整個頁面上。  
       
      當然,用類似下面(三目運算)的語句也可以實現(xiàn)上述功能:  
       
      <%#   ((int)(DataBinder.Eval(Container.DataItem,   "ReCount"))==0)   ?   "--"  
      :   DataBinder.Eval(Container.DataItem,   "LastReplyer")   %>  
       
      可問題是,對于復雜的判斷處理,這樣的做法就相當困難了。  
       
      那么   <%#   if   ...   else   ...   %>   這樣的又用法為什么也不行呢?  
       
      因為   <%#   %>   想當于   <%=   %>,而   <%=   %>   就是   Response.Write(),那么上面的判斷就顯得可笑:  
       
      Response.Write(   if   ...   else   ...   )  
       
      如果非要在Repeater中使用if語句來判斷其中的數(shù)據(jù),那么可以采用下面的方法:  
       
      ######################################################################  
       
      <%   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   nCount=(int)(((DataView)_TopicRepeater.DataSource).Table.Rows[_nIndex++]["ReCount"]);  
       
      if(nCount==0)   {   %>  
      ----  
      <%   }   else   {   %>  
      <%#   DataBinder.Eval(Container.DataItem,   "LastReplyer")   %>  
      <%   }   %>  
      </ItemTemplate>  
      </asp:Repeater>  
       
      ######################################################################  
       
      其原理是,得到_TopicRepeater的數(shù)據(jù)源(DataSource),并返回該表(Table)的當前行(Rows[_nIndex++])  
       
      最后判斷ReCount列是否為0?  
       
      在最初的時候_nIndex被賦值為0,然后,在每一次的ItemTemplate里都自加一次。  
       
      其目的,也就是讓_nIndex記錄當前正在訪問的記錄“行”。  
       
      完,希望能對您有所幫助...

    http://topic.csdn.net/t/20041021/15/3478270.html

    posted on 2008-09-24 13:08 渠上月 閱讀(4071) 評論(2)  編輯  收藏 所屬分類: other tips

    評論

    # re: 在Repeater控件中使用if語句(參考) 2012-11-15 09:23 游客
    不對 <% int _nIndex=0; %>在Repeater里根本得不到  回復  更多評論
      

    # re: 在Repeater控件中使用if語句(參考)[未登錄] 2013-07-19 09:20 AA
    @游客恩,此方法錯誤!  回復  更多評論
      

    主站蜘蛛池模板: 精品特级一级毛片免费观看| 亚洲嫩草影院在线观看| 国产亚洲情侣久久精品| 在线免费观看中文字幕| 亚洲日本VA午夜在线电影| 成人影片麻豆国产影片免费观看| 亚洲区精品久久一区二区三区| 在线看片韩国免费人成视频| 亚洲国产精品专区| 一二三四在线播放免费观看中文版视频| 中文字幕亚洲免费无线观看日本| 99精品热线在线观看免费视频| 亚洲沟沟美女亚洲沟沟| 91免费资源网站入口| 亚洲乱码无人区卡1卡2卡3| 日本免费无遮挡吸乳视频电影| 国产偷国产偷亚洲高清在线| 国产成人亚洲精品91专区手机| 91视频精品全国免费观看| 亚洲国产精品自在线一区二区| 最近2019年免费中文字幕高清 | 亚洲av中文无码乱人伦在线r▽| 国产永久免费高清在线| 亚洲国产精品久久| 亚洲国产精品免费观看| 亚洲精品久久无码| 亚洲一区二区三区在线观看精品中文 | 亚洲成av人片不卡无码久久| 丝袜捆绑调教视频免费区| 亚洲成色在线影院| 成人免费无码视频在线网站| 大桥未久亚洲无av码在线| 国产精一品亚洲二区在线播放 | 日韩免费视频观看| 久久国产美女免费观看精品| 亚洲高清中文字幕| 国产三级免费观看| 91av视频免费在线观看| 国产偷国产偷亚洲高清在线| 亚洲一区二区在线免费观看| 蜜桃精品免费久久久久影院|