zoukankan      html  css  js  c++  java
  • Repater 控件的应用(学习)


    Repater 控件的传统应用

    <asp:Repeater ID="normalArticleList" runat="server">
        
    <ItemTemplate>
            
    <div class="textbox">
                
    <div class="textbox-title">
                    
    <h4><onclick="<%# urlFormats.ArticleConent(Convert.ToInt32(Eval("ArticleID").ToString()))%>" href="#"><span runat=server visible=<%# Eval("IsTop")%>>[置顶]</span><%Eval("Title")%></a>
                    
    </h4>
                    
    <div class="textbox-label">
                        [
                        
    <%Eval("PostTime")%>
                        | 
    <%=lang["author"]%><onclick="<%# urlFormats.UserDetail(int.Parse(Eval("AuthorID").ToString()))%>" href="#"><%Eval("Author"%></a> ]</div>
                
    </div>
                
    <div class="textbox-content">
                    
    <%# GetContent(Eval("Content0").ToString(), Eval("Content1").ToString())%><%--<%# Eval("Content1"%>--%></div>
                
    <div class="textbox-bottom">
                    
    <asp:PlaceHolder ID="actionLinkPanel" runat="server">
    <href="articleManage.aspx?act=edit&id=<%# Eval("ArticleID") %>" title="<%=lang["edit"]%>">
                        
    <img src="/styles/default/images/icon_edit.gif" alt="<%=lang["edit"]%>" />
                    
    </a><href="/articleManage.aspx?act=delete&id=<%# Eval("ArticleID") %>" title="<%=lang["delete"]%>">
                        
    <img src="/styles/default/images/icon_del.gif" alt="<%=lang["delete"]%>" /></a> | 
                    
    </asp:PlaceHolder>
    <onclick="<%# urlFormats.ArticleCategoryUrl(Convert.ToInt32(Eval("categoryID").ToString()))%>" href="#"><%=lang["category"]%>:<%Eval("CategoryName")%></a> | <href="?id=<%# Eval("ArticleID") %>"><%=lang["permalink"]%></a> | <onclick="<%# urlFormats.ArticleConent(Convert.ToInt32(Eval("ArticleID").ToString()))%>" href="#commentbox" title="评论"><%=lang["comments"]%>:<%Eval("CommentCount"%></a> | <href="#"><%=lang["trackbacks"]%>:<%Eval("TrackbackCount"%></a> | <%=lang["views"]%>:<%Eval("ViewCount"%>
                
    </div>
            
    </div>
        
    </ItemTemplate>
    </asp:Repeater>


    上面的代码通过数据绑定语法,能很好的完成了工作。可这界面太烦,字段多,金黄色语法就更多,看上去很烦,但我们却无法逃避这个问题,而且有时候还需要对一些字段进行逻辑判断。

    Repater 控件的友好应用

    Literal 控件代替绑定语法,在 ItemDataBound 事件中完成数据的填充。

    前端代码:

    <asp:Repeater ID="normalArticleList" runat="server">
    <ItemTemplate>
    <div class="textbox">
        
    <div class="textbox-title">
            
    <asp:Literal ID="articleTitle" runat="server"></asp:Literal>
            
    <div class="textbox-label">
                
    <asp:Literal ID="articleLabel" runat="server"></asp:Literal>
            
    </div>
        
    </div>
        
    <div class="textbox-content">
            
    <asp:Literal ID="articleContent" runat="server"></asp:Literal>
        
    </div>
        
    <div class="textbox-bottom">
        
    <asp:Literal ID="articleBottom" runat="server"></asp:Literal>
        
    </div>
    </div>
    </ItemTemplate>
    </asp:Repeater>


    后端代码:

            void normalArticleList_ItemDataBound(object sender, RepeaterItemEventArgs e)
            
    {
                
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                
    {
                    Article item 
    = (Article)e.Item.DataItem;
                  
                    Literal title 
    = (Literal)e.Item.FindControl("articleTitle");
                    Literal articleLabel 
    = (Literal)e.Item.FindControl("articleLabel");
                    Literal articleContent 
    = (Literal)e.Item.FindControl("articleContent");
                    Literal articleBottom 
    = (Literal)e.Item.FindControl("articleBottom");
                    
                    title.Text 
    = RenderNormalTitle(item);
                    articleLabel.Text 
    = RenderNormalLabel(item);
                    articleContent.Text 
    = RenderNormalContent(item);
                    articleBottom.Text 
    = RenderNormalBottom(item);
                    
                }

            }


    这样的写法会漂亮很多,而且数据绑定是通过反射机制的,但是听说会损失性能!

    学习来源:http://www.cnblogs.com/Clingingboy/archive/2007/12/31/1021611.html
  • 相关阅读:
    select 的readonly效果
    HTML5与CSS3设计模式
    关于htons和htonl
    Http Range
    如何隐藏aspx文件格式,变成html
    UITableView的cell 自定义 高度,样式
    gson 数据里面设置特殊字符不转换为十六进制
    HDU2164:Rock, Paper, or Scissors?
    黑马程序员java基础学习网络编程2
    HDU2137:circumgyrate the string
  • 原文地址:https://www.cnblogs.com/xugang/p/1022368.html
Copyright © 2011-2022 走看看