【知识笔记】WebForm
一、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相关推荐
- access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...
- 数据库系统故障相关知识笔记
数据库系统中可能发生的故障主要包括事务故障.系统故障.介质故障.计算机病毒等.下面给大家简单整理一下相关的故障知识笔记. 1.事务故障 事务故障是因为程序执行错误而引起的非预期.异常终止的故障.主要有 ...
- 汇编程序基本原理知识笔记
1.汇编语言的概念 定义:为特定计算机或计算机系统设计的面向机器的符号化程序设计语言.汇编程序也就是用汇编语言编写的程序.计算机要运行汇编程序需要用专门的翻译程序进行翻译,然后计算机才可以识别. 汇编 ...
- Elasticsearch集群知识笔记
Elasticsearch集群知识笔记 Elasticsearch内部提供了一个rest接口用于查看集群内部的健康状况: curl -XGET http://localhost:9200/_clust ...
- Java基础知识笔记-11_2-Swing用户界面组件
Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...
- 机器学习入门:准备知识笔记(pandas)之一
参考教学笔记:2021年Python人工智能,13天机器学习入门到精通,精讲+14大案例分析(数据来源参考) pandas的优势 增强图表可读性 便捷的数据处理能力 读取文件方便 封装了Matplo ...
- 6-DoF问题相关基础知识笔记
6-DoF问题相关基础知识笔记 一.什么是6-DoF,即6个自由度是什么? 二.PnP算法 三.BOP挑战与官方数据集简介 BOP数据集 BOP toolkit BOP挑战的介绍页面 四.相关论文 C ...
- 二代测序之SNV基础知识笔记总结
二代测序之SNV基础知识笔记总结 文章目录 二代测序之SNV基础知识笔记总结 SNV基础知识 SNVs Mutation vs. Variant[变异和突变] 不同层次的突变 DNA: 1.编码DNA ...
- 推荐两个本地知识笔记软件
由于工作中经常要记录知识或者经验,所以对知识笔记软件比较依赖. 公司要求使用的软件都是正版的.合规的.经过试用,觉得以下两个笔记本软件比较好用. eDiary eDiary是国内开发者开发的,免费可用 ...
- b站唐老师人工智能基础知识笔记
b站唐老师人工智能基础知识笔记 0.机器学习(常用科学计算库的使用)基础定位.目标定位 1.机器学习概述 1.1.人工智能概述 1.2.人工智能发展历程 1.3.人工智能主要分支 1.4.机器学习工作 ...
最新文章
- 在Eclipse中安装ADT
- python调用shell命令-Python怎么运行shell脚本
- 【Python】详解Python模块、包、库
- 网易云terraform实践
- input 禁用智能提示_如何在智能手机上禁用紧急警报
- mysql item_MySQL源代码:关于MySQL的Item对象
- 汇编语言二进制转十进制_汇编语言笔记(一)——基础知识
- python 无法初始化设备prn_彻底搞懂Python一切皆对象,面试必过
- 7.RabbitMQ实战 --- warren和Shovel:故障转移和复制
- 局域网办公系统服务器备份,协同办公系统的数据备份经验分享
- SqlServer 存贮过程操作类
- 联想计算机怎样分区,怎么给联想笔记本硬盘分区【图文】
- 使用 PotPlayer 搭配 SVP 4 播放60帧电影
- 百度网盘终于不限速了!?
- 考勤系统的软件上位机设计
- C18-PEG-ICG18碳烷基链-聚乙二醇-吲哚菁绿,Cholesterol-PEG-ICG胆固醇-聚乙二醇-吲哚菁绿
- 六西格玛dfss_六西格玛设计(DFSS)的概念、核心及优势
- js简单交互动画,运动吧
- 域名过期 脚本_域名宝已过期! …还是垃圾?
- 记录小米设备事件获取
热门文章
- Linux下Python3对Docker进行基本的管理(包含显示端口,显示IP,一键启动,一键关闭)
- turtle模块实现多边形
- 无界面和应用图标的应用程序
- 第十二课:实验二 循环链表实验
- JSP页面处理和输出
- python生成矢量图_Jupyter Notebook输出矢量图实例
- Collectors.summingDouble()
- 【图解】虚拟机下载安装以及Linux操作系统的配置CentOS安装
- python需要excel基础吗_Python实现和Excel基础功能对应关系
- [渝粤教育] 江西财经职业学院 企业会计业务核算与财务报告编制 参考 资料