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。

  • 相关阅读:
    ThinkPHP 中入口文件中的APP_DEBUG为TRUE时不报错,改为FALSE时报错
    ASP.NET LinqDataSource数据绑定后,遇到[MissingMethodException: 没有为该对象定义无参数的构造函数。]问题。
    error 2593 operator << 不明确的可能的解决方法
    C++读取mysql中utf8mb4编码表数据乱码问题及UTF8转GBK编码
    arcgis flexviewer中由Application向widget传值
    Flash Builder中“Error: #2036 加载未完成”错误的解决方法
    ArcGIS Server API for JavaScript调用错误:已阻止跨源请求:同源策略禁止读取位于......
    Win10下E3-1231 V3开启Intel虚拟化技术(vt-x)安装HAXM
    GPS accuracy in Android
    解决Win7旗舰版开机后无线网络识别非常慢的问题
  • 原文地址:https://www.cnblogs.com/hackcat/p/2157428.html
Copyright © 2011-2022 走看看