ASP.NET WebFrom开发02-常用控件与文件上传

1、常用控件

1.1、ASP.NET控件分类

ASP.NET控件分类

1.2、HTML控件和ASP.NET服务器控件的区别

HTML控件

  • 运行在客户端
  • 没有回传,不能用ViewState维持状态
  • 浏览器完成事件处理( javascript )
  • 如果需要访问后台C# ,现在典型就是使用jQuery

ASP.NET控件

  • 运行在服务器端
  • 能回传,能用ViewState维持状态
  • 服务器完成事件处理( C#后台程序处理)
  • 事件驱动模型编程(控件+事件)

1.3、ASP.NET常用服务器控件

1.3.1、Lable控件和Literal控件

Lable控件在页面上显示一个静态文本

Lable常用属性:

  • Text:标签上显示的文本
  • ForeColor:文字颜色
  • Visible:是否可见

Lable缺点:会生成一个span标签,因此很少使用

Literal控件:不生成任何多余代码,只是普通的显示文本(没有属性)

1.3.2、TextBox控件

TextBox控件在页面上显示一个可编辑的文本框

常用属性:

  • AutoPostBack属性(True/False):是否自动提交(和TextChange事件一起使用,很少用到)
  • TextMode属性:(SingleLine只能单行输入、MulitiLine允许多行输入、Password密码输入方式)
1.3.3、HiddenFiled控件

隐藏域HiddenFiled控件:不占用网页位置,不显示内容,通过Value保存值

1.3.4、Button控件

Button控件在页面上显示一个按钮

常用属性:

  • PostBackUrl属性:发送到的页面跨页提交时设置
  • CommandName属性:按钮相关的命令名
  • CausesValidation属性:是否激活验证

Button控件的类型:

  • 普通按钮: Button
  • 超链接按钮: LinkButton
  • 图像按钮: ImageButton

所有的按钮默认都是Submit类型

为按钮添加客户端脚本,可以使用onclientclick属性:OnClientClick=“ JavaScript代码”;

1.3.5、RadioButton控件和HyperLink控件

RadioButton控件:单选按钮控件(GroupName属性:分组)

HyperLink控件:超链接控件(NavigateUrl属性:需要指向的URL)

2、文件上传

2.1、Web.config文件配置

1
2
3
4
5
6
7
8
9
<appSettings>
<!--配置上传文件最大字节数,单位KB-->
<add key="PhysicsObjectLength" value="30720"/>
</appSettings>

<system.web>
<!--maxRequestLength 设置请求的最大字节数(默认是4096,单位KB)-->
<httpRuntime maxRequestLength="40960"/>
</system.web>

2.2、文件上传前端代码

1
2
3
4
5
6
7
8
9
10
11
<form id="form1" runat="server">
<div>
请选择要上传的文件:
<asp:FileUpload ID="FileUpload1" runat="server" />
&nbsp;&nbsp;&nbsp;
<asp:Button ID="Button1" runat="server" Text="开始上传" OnClick="Button1_Click" />
<br />
<br />
</div>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</form>

2.3、文件上传后台处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
protected void Button1_Click(object sender, EventArgs e)
{
//1.判断文件是否存在
if (!this.FileUpload1.HasFile) return;//没有选择文件就直接返回
//2.获取文件大小,判断是否符合设置要求.(直接获取的文件大小单位是B)
double fileLength = this.FileUpload1.FileContent.Length / (1024.0 * 1024.0);
//3.获取配置文件中上传文件大小的限制,并转换单位
double limitedLength = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["PhysicsObjectLength"])/1024.0;
//4.判断文件大小是否符合要求
if (fileLength > limitedLength)
{
//不符合条件,给用户一个提示
this.Literal1.Text = "<script type='text/javascript'>alert('上传文件大小不能超过"+limitedLength+"M。该文件大小不符合要求,请重新选择!')</script>";
return;
}
//5.获取文件名,判断文件扩展名是否符合要求
string fileName = this.FileUpload1.FileName;
//判断文件是否是docx文件
if(!(fileName.Substring(fileName.LastIndexOf(".")).ToLower() == ".docx" || fileName.Substring(fileName.LastIndexOf(".")).ToLower() == ".doc"))
{
this.Literal1.Text = "<script type='text/javascript'>alert('选中的该文件不是doc或docx类型的文档,请重新选择!')</script>";
return;
}
//修改文件名
fileName = DateTime.Now.ToString("yyyyMMddhhssms") + "_" + fileName;
//6.获取服务器文件夹路径
string path = Server.MapPath("~/file/s");
//7.上传文件
try
{
this.FileUpload1.SaveAs(path + "/" + fileName);
this.Literal1.Text = "文件上传成功!";
}catch(Exception ex)
{
this.Literal1.Text = "文件上传失败!错误日志为:" + ex;
}
}
文章作者: Oxywen
文章链接: https://oxywen.cn/post/asp-net/2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 不闻星河须臾