一、ashx介绍以及ashx文件与aspx文件之间的区别

  ashx是什么文件?

.ashx 文件用于写web handler的。

.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。

.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。

ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供).

ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:

代码示例:
当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable

<% @ webhandler language="C#" class="AverageHandler" %>using System;using System.Web;public class AverageHandler : IHttpHandler{public bool IsReusable{ get { return true; } }public void ProcessRequest(HttpContext ctx){ctx.Response.Write("hello");}}   

View Code

.ashx比.aspx的好处在于不用多一个html

比aspx简洁多了,只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件)

.ashx对比aspx文件就好像 少了cs文件,其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件。

其实,在最终编译的时候,aspx和cs还是会编译到同一个类中去,这中间就要设计html的一些逻辑处理。

而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果,比aspx少处理了html的过程,理论上比aspx要快。

看看.net config文件中对两个文件类型请求的配置吧

<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />

可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较 Simple,响应速度也应该快点吧:)

二、DropDownList 动态绑定数据

效果

<asp:DropDownList ID="ddlCurrencyCode" runat="server" Width="173">
<asp:ListItem Text="全部" Value="" />
<asp:ListItem Text="人民币" Value="RMB" />
<asp:ListItem Text="港币" Value="HKD" />
</asp:DropDownList>

代码:

this.ddlCurrencyCode.Items.Clear();
this.ddlCurrencyCode.Items.Add(new ListItem { Value = "", Text = "全部" });
ListItem listItem;
list.ForEach(item =>{listItem = new ListItem();listItem.Text = item.Key;listItem.Value = item.Key;this.ddlCurrencyCode.Items.Add(listItem);});

三、动态控制颜色

<td align="center" style='color:<%# Container.ItemIndex == 0 ? "green":"red"%>'>

四、CheckBoxList动态绑定数据、CheckBox设置间距

前端:

<asp:CheckBoxList ID="chklSellChannelID" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"></asp:CheckBoxList>

后端:

var lists = new BasicInfoPresenter().ConvertHotelSellChannel(SellChannels);chklSellChannelID.DataSource = lists;
//根据lists的字段 去设置控制的value和textchklSellChannelID.DataValueField = "HotelSellChannelId";chklSellChannelID.DataTextField = "ChannelName";chklSellChannelID.DataBind();foreach (ListItem item in chklSellChannelID.Items){
item.Attributes.Add("style", "display:block;margin-right:20px;float:left;");if (item.Value.Contains($"{(int)SellChannelType.Static}") || item.Value.Contains($"{(int)SellChannelType.CB}")){item.Selected = true;item.Enabled = false;}if (item.Value.Contains($"{(int)SellChannelType.Dynamic}")){item.Selected = false;item.Enabled = false;}}

View Code

CheckBox选中的判断:

ListItem _list;foreach (var ctl in chklSellChannelID.Items){if (ctl is ListItem){_list = (ListItem)ctl;if (_list.Selected == true){}}}

View Code

五、asp.net使用include包含文件

  用asp.net使用include包含文件?……有必要吗?使用“用户控件”不是更好吗?

当然,绝大多数情况下,用户控件都能解决问题。但若要在用户控件中需包含其他公用块,即使用用户控件嵌套,老是出问题,而且也没必要使用asp.net的用户控件,因为我要包含的块是静态的,例如在head中包含一个logo……

1、asp.net页面也可以像asp那样,用include来包含文件:

<div class="includeParent">3.include htm:<!--#include file="include/HeadAd.htm"-->
</div>

2、也可以包含有服务端代码的aspx或ascx文件,但它必须是动态编译的文件(是CodeFile或单文件,而非CodeBehind编译的)。

<div class="includeParent">4.include aspx:<!--#include file="include/HeadNav.aspx"-->
</div>
<div class="includeParent">5.include ascx:<!--#include file="include/HeadNav.ascx"-->
</div>

HeadNav.aspx和HeadNav.ascx的内容示例:

<div class="includeDiv"><%=Guid.NewGuid().ToString()%></div>

3、也可以使用asp.net的“Response.WriteFile”方法,但仅限于静态文件:

<div class="includeParent">1.WriteFile htm:<%Response.WriteFile("include/HeadAd.htm");%>
</div>

实际应用,将图片放NavLogo.html中当公共页面,被多个页面共享,发生修改时只改一处即可。

NavLogo.html的内容如下:

<div class="logo-grop"><img class="logo" src=<%=System.Web.Configuration.WebConfigurationManager.AppSettings["navLogoImg"] %> title="logo" />
</div>

六、aspx前台写后台代码控制显示与否

  有时候在一个Table中展示了一些列,但是可能某一列只在特殊条件下 才要展示出来。那就可以在前台写C#代码来控制。

利用 <% %>来控制,在后台定义一个bool型变量VisibleInfo作为控制。

 <tr><th width="14%" height="20" >原幣</th><th width="10%" >匯率</th><th width="14%">港幣</th><th width="14%" >提交港幣</th><th width="14%" >實收金額 </th><% if (VisibleInfo){%><th style="width:16%">ctrip促銷</th><%} %><th width="34%">優惠</th></tr><tr><td align="center"><asp:Literal ID="original" runat="server"></asp:Literal></td><td align="center"><asp:Literal ID="exchangeRate" runat="server"></asp:Literal></td><td align="center"><asp:Literal ID="dollarhk" runat="server"></asp:Literal></td><td align="center"><asp:Literal ID="submit" runat="server"></asp:Literal></td><td align="center"><asp:Literal ID="receivedAmount" runat="server"></asp:Literal></td><% if (VisibleInfo){%><td style="text-align: center"><asp:Literal ID="PromotionPrice" runat="server"></asp:Literal></td><%} %><td align="center">

View Code

转载于:https://www.cnblogs.com/peterYong/p/10679357.html

【知识笔记】WebForm相关推荐

  1. access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化

    往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...

  2. 数据库系统故障相关知识笔记

    数据库系统中可能发生的故障主要包括事务故障.系统故障.介质故障.计算机病毒等.下面给大家简单整理一下相关的故障知识笔记. 1.事务故障 事务故障是因为程序执行错误而引起的非预期.异常终止的故障.主要有 ...

  3. 汇编程序基本原理知识笔记

    1.汇编语言的概念 定义:为特定计算机或计算机系统设计的面向机器的符号化程序设计语言.汇编程序也就是用汇编语言编写的程序.计算机要运行汇编程序需要用专门的翻译程序进行翻译,然后计算机才可以识别. 汇编 ...

  4. Elasticsearch集群知识笔记

    Elasticsearch集群知识笔记 Elasticsearch内部提供了一个rest接口用于查看集群内部的健康状况: curl -XGET http://localhost:9200/_clust ...

  5. Java基础知识笔记-11_2-Swing用户界面组件

    Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...

  6. 机器学习入门:准备知识笔记(pandas)之一

    参考教学笔记:2021年Python人工智能,13天机器学习入门到精通,精讲+14大案例分析(数据来源参考) pandas的优势  增强图表可读性 便捷的数据处理能力 读取文件方便 封装了Matplo ...

  7. 6-DoF问题相关基础知识笔记

    6-DoF问题相关基础知识笔记 一.什么是6-DoF,即6个自由度是什么? 二.PnP算法 三.BOP挑战与官方数据集简介 BOP数据集 BOP toolkit BOP挑战的介绍页面 四.相关论文 C ...

  8. 二代测序之SNV基础知识笔记总结

    二代测序之SNV基础知识笔记总结 文章目录 二代测序之SNV基础知识笔记总结 SNV基础知识 SNVs Mutation vs. Variant[变异和突变] 不同层次的突变 DNA: 1.编码DNA ...

  9. 推荐两个本地知识笔记软件

    由于工作中经常要记录知识或者经验,所以对知识笔记软件比较依赖. 公司要求使用的软件都是正版的.合规的.经过试用,觉得以下两个笔记本软件比较好用. eDiary eDiary是国内开发者开发的,免费可用 ...

  10. b站唐老师人工智能基础知识笔记

    b站唐老师人工智能基础知识笔记 0.机器学习(常用科学计算库的使用)基础定位.目标定位 1.机器学习概述 1.1.人工智能概述 1.2.人工智能发展历程 1.3.人工智能主要分支 1.4.机器学习工作 ...

最新文章

  1. 在Eclipse中安装ADT
  2. python调用shell命令-Python怎么运行shell脚本
  3. 【Python】详解Python模块、包、库
  4. 网易云terraform实践
  5. input 禁用智能提示_如何在智能手机上禁用紧急警报
  6. mysql item_MySQL源代码:关于MySQL的Item对象
  7. 汇编语言二进制转十进制_汇编语言笔记(一)——基础知识
  8. python 无法初始化设备prn_彻底搞懂Python一切皆对象,面试必过
  9. 7.RabbitMQ实战 --- warren和Shovel:故障转移和复制
  10. 局域网办公系统服务器备份,协同办公系统的数据备份经验分享
  11. SqlServer 存贮过程操作类
  12. 联想计算机怎样分区,怎么给联想笔记本硬盘分区【图文】
  13. 使用 PotPlayer 搭配 SVP 4 播放60帧电影
  14. 百度网盘终于不限速了!?
  15. 考勤系统的软件上位机设计
  16. C18-PEG-ICG18碳烷基链-聚乙二醇-吲哚菁绿,Cholesterol-PEG-ICG胆固醇-聚乙二醇-吲哚菁绿
  17. 六西格玛dfss_六西格玛设计(DFSS)的概念、核心及优势
  18. js简单交互动画,运动吧
  19. 域名过期 脚本_域名宝已过期! …还是垃圾?
  20. 记录小米设备事件获取

热门文章

  1. Linux下Python3对Docker进行基本的管理(包含显示端口,显示IP,一键启动,一键关闭)
  2. turtle模块实现多边形
  3. 无界面和应用图标的应用程序
  4. 第十二课:实验二 循环链表实验
  5. JSP页面处理和输出
  6. python生成矢量图_Jupyter Notebook输出矢量图实例
  7. Collectors.summingDouble()
  8. 【图解】虚拟机下载安装以及Linux操作系统的配置CentOS安装
  9. python需要excel基础吗_Python实现和Excel基础功能对应关系
  10. [渝粤教育] 江西财经职业学院 企业会计业务核算与财务报告编制 参考 资料