HtmlInputFile.OnPreRender(EventArgs) 方法
定义
为 PreRender 控件引发 HtmlInputFile 事件。Raises the PreRender event for the HtmlInputFile control.
protected:
override void OnPreRender(EventArgs ^ e);
protected public:
override void OnPreRender(EventArgs ^ e);
protected override void OnPreRender (EventArgs e);
protected internal override void OnPreRender (EventArgs e);
override this.OnPreRender : EventArgs -> unit
Protected Overrides Sub OnPreRender (e As EventArgs)
Protected Friend Overrides Sub OnPreRender (e As EventArgs)
参数
示例
下面的代码示例演示如何重写 OnPreRender 方法,以便始终将 Title 特性添加到每个自定义 HtmlInputFile 控件。The following code example demonstrates how to override the OnPreRender method so that a Title attribute is always added to each custom HtmlInputFile control. 要使此示例正常工作,需要 Temp 在计算机的驱动器 C 上创建一个名为的目录。For this example to work properly, you need to create a directory called Temp on your computer's drive C.
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Button1_Click(object Source, EventArgs e)
{
// Make sure a file was submitted.
if (HtmlInputText1.Value == "")
{
Span1.InnerHtml = "Error: You must enter a file name.";
}
// Save the file.
else if (HtmlInputFile1.PostedFile != null)
{
try
{
HtmlInputFile1.PostedFile.SaveAs("c:\\temp\\" + HtmlInputText1.Value);
Span1.InnerHtml = "File uploaded successfully to: <b>c:\\temp\\" +
HtmlInputText1.Value + "</b> on the Web server.";
}
catch (Exception exc)
{
Span1.InnerHtml = "Error saving <b>c:\\temp\\" +
HtmlInputText1.Value + "</b><br />" + exc.ToString() + ".";
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Custom HtmlInputFile OnPreRender Example</title>
</head>
<body>
<form id="form1" enctype="multipart/form-data"
runat="server">
<h3>Custom HtmlInputFile OnPreRender Example</h3>
Select File to Upload:
<aspSample:CustomHtmlInputFileOnPreRender
id="HtmlInputFile1"
type="file"
runat="server"
name="HtmlInputFile1">
<p>
Save as file name (no path):
<input id="HtmlInputText1"
type="text"
runat="server"
name="Text1" />
</p>
<p>
<span id="Span1"
style="font: 8pt verdana;"
runat="server" />
</p>
<p>
<input type="button"
id="Button1"
value="Upload"
onserverclick="Button1_Click"
runat="server"
name="Button1" />
</p>
</form>
</body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Button1_Click(ByVal source As Object, ByVal e As EventArgs)
' Make sure the file was submitted.
If HtmlInputText1.Value = "" Then
Span1.InnerHtml = "Error: You must enter a file name."
' Save the file
ElseIf Not (HtmlInputFile1.PostedFile Is Nothing) Then
Try
HtmlInputFile1.PostedFile.SaveAs("c:\\temp\\" & HtmlInputText1.Value)
Span1.InnerHtml = "File uploaded successfully to: <b>c:\temp\" _
& HtmlInputText1.Value & "</b> on the Web server."
Catch exc As Exception
Span1.InnerHtml = "Error saving <b>c:\temp\" _
& HtmlInputText1.Value & "</b><br />" _
& exc.ToString() & "."
End Try
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Custom HtmlInputFile OnPreRender Example</title>
</head>
<body>
<form id="form1" enctype="multipart/form-data"
runat="server">
<h3>Custom HtmlInputFile OnPreRender Example</h3>
Select File to Upload:
<aspSample:CustomHtmlInputFileOnPreRender
id="HtmlInputFile1"
type="file"
runat="server"
name="HtmlInputFile1">
<p>
Save as file name (no path):
<input id="HtmlInputText1"
type="text"
runat="server"
name="Text1" />
</p>
<p>
<span id="Span1"
style="font: 8pt verdana;"
runat="server" />
</p>
<p>
<input type="button"
id="Button1"
value="Upload"
onserverclick="Button1_Click"
runat="server"
name="Button1" />
</p>
</form>
</body>
</html>
using System.Web;
using System.Security.Permissions;
namespace Samples.AspNet.CS.Controls
{
[AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
public sealed class CustomHtmlInputFileOnPreRender : System.Web.UI.HtmlControls.HtmlInputFile
{
protected override void OnPreRender(System.EventArgs e)
{
// Call the base OnPreRender method.
base.OnPreRender(e);
// Add a Title attribute to the HtmlInputFile control.
this.Attributes.Add("title", "Click the Browse button to select a file to upload.");
}
}
}
Imports System.Web
Imports System.Security.Permissions
Namespace Samples.AspNet.VB.Controls
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class CustomHtmlInputFileOnPreRender
Inherits System.Web.UI.HtmlControls.HtmlInputFile
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
' Call the base OnPreRender method.
MyBase.OnPreRender(e)
' Add a Title attribute to the HtmlInputFile control.
Me.Attributes.Add("title", "Click the Browse button to select a file to upload.")
End Sub
End Class
End Namespace
注解
如果没有为网页的控件指定编码 HtmlForm ,则 Enctype 属性将设置为 "多部分/窗体数据"。If no encoding is specified for the Web page's HtmlForm control, the Enctype property is set to "multipart/form-data".