zoukankan      html  css  js  c++  java
  • PetShop 首页

      <asp:Panel ID="panFocus" runat="server" DefaultButton="btnSearch"></Panel> Panel控件可以设置DefaultButton值用来捕获默认的回车符号

    接下来分析其中的NavigationControl控件

    <HeaderTemplate> 
    <table cellspacing="0" border="0" style="border-collapse: collapse;"> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <tr> 
    <td class="<%= ControlStyle %>"><asp:HyperLink runat="server" ID="lnkCategory"  
    NavigateUrl='<%# string.Format("~/Products.aspx?page=0&categoryId={0}", Eval("Id")) %>' Text='<%# Eval("Name") %>' /><asp:HiddenField runat="server" ID="hidCategoryId" Value='<%# Eval("Id") %>' /></td> 
    </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
    </table> 
    </FooterTemplate>
    

      

    HyperLink用了NavigateUrl='<%# string.Format("~/Products.aspx?page=0&categoryId={0}", Eval("Id")) %>'来作为Url绑定。

    其中<table>标签可以放在HeaderTemplate里,</table>可以放在FooterTemplate中

    <td class="<%= ControlStyle %>"> 可以从后台取样式到前台,也可以取一些值放在前台的隐藏框里以供Js调用

    Request.ServerVariables["SCRIPT_NAME"].ToLower().IndexOf("default.aspx") > 0 用来判断Url中是否存在default.aspx。如http://localhost/WebSite23/Default.aspx?id=3&cat=65    
               

    Response.Write(Request.ServerVariables["SCRIPT_NAME"]); // WebSite23/Default.aspx 
                Response.Write(Request.ServerVariables["QUERY_STRING"]); //id=3&cat=65 
                Response.Write(Request.ServerVariables["ALL_HTTP"]);  //All HTTP headers sent by the client 
                Response.Write(Request.ServerVariables["ALL_RAW"]); // Same 
                Response.Write(Request.ServerVariables["APPL_PHYSICAL_PATH"]);  // 物理路径E:\PJ\项目\代码\IMS\WebSite23\ 
                Response.Write(Request.ServerVariables["HTTP_URL"]);    // /WebSite23/Default.aspx?id=3&cat=65 
                Response.Write(Request.ServerVariables["HTTP_USER_AGENT"]); // 浏览器Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0) 
                Response.Write(Request.ServerVariables["URL"]); // /WebSite23/Default.aspx
    

      

    HiddenField 中隐藏了每一个分类的Id,如果在Url中有传分类的值,则从后台获取

    if (!string.IsNullOrEmpty(categoryId))
                    SelectCategory(categoryId);

    并且通过以下方法进行选取

    private void SelectCategory(string categoryId) { 
                foreach (RepeaterItem item in repCategories.Items) { 
                    HiddenField hidCategoryId = (HiddenField)item.FindControl("hidCategoryId"); 
                    if(hidCategoryId.Value.ToLower() == categoryId.ToLower()) { 
                        HyperLink lnkCategory = (HyperLink)item.FindControl("lnkCategory"); 
                        lnkCategory.ForeColor = System.Drawing.Color.FromArgb(199, 116, 3); 
                        break; 
                    } 
                } 
            }
    

      

    先遍历RepeaterItem控件,迭代获取每次隐藏的hidCategoryId值,如果和Url中的相匹配,则将lnkCategory的颜色改变。

    private void BindCategories() { 
                Category category = new Category(); 
                repCategories.DataSource = category.GetCategories(); 
                repCategories.DataBind();            
            }
    

      

    数据绑定的时候可以用List,而且List也可以用IList,通过面向接口来编程,降低耦合性。这样能进行很好的封装,不建议绑定table。

  • 相关阅读:
    课堂作业04 2017.10.27
    课程作业 03 动手动脑 2017.10.20
    课程作业 03 2017.10.20
    HDU 3974 Assign the task
    POJ 2155 Matrix
    POJ 2481 Cows
    HDU 3038 How Many Answers Are Wrong
    CS Academy Array Removal
    POJ_1330 Nearest Common Ancestors LCA
    CF Round 427 D. Palindromic characteristics
  • 原文地址:https://www.cnblogs.com/hackcat/p/2157428.html
Copyright © 2011-2022 走看看