FormParameter 类

定义

将 HTTP 请求 Form 字段的值绑定到参数对象。

public ref class FormParameter : System::Web::UI::WebControls::Parameter
public class FormParameter : System.Web.UI.WebControls.Parameter
type FormParameter = class
    inherit Parameter
Public Class FormParameter
Inherits Parameter
继承
FormParameter

示例

下面的代码示例演示如何使用 SqlDataSource 控件和简单的 ASP.NET 网页将数据插入数据库。 数据表中的当前数据显示在 控件中 DropDownList 。 可以通过在控件中 TextBox 输入值并单击按钮来添加新记录。 单击按钮时,指定的值将插入数据库中,并 DropDownList 刷新 。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述

<%@Page  Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
private void InsertShipper (object source, EventArgs e) {
  SqlDataSource1.Insert();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:dropdownlist
        id="DropDownList1"
        runat="server"
        datasourceid="SqlDataSource1"
        datatextfield="CompanyName"
        datavaluefield="ShipperID" />

<!-- Security Note: The SqlDataSource uses a FormParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the FormParameter, handle the Inserting event. -->

      <asp:sqldatasource
        id="SqlDataSource1"
        runat="server"
        connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
        selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
        insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
          <insertparameters>
            <asp:formparameter name="CoName" formfield="CompanyNameBox" />
            <asp:formparameter name="Phone"  formfield="PhoneBox" />
          </insertparameters>
      </asp:sqldatasource>

      <br /><asp:textbox
           id="CompanyNameBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator1"
        runat="server"
        ControlToValidate="CompanyNameBox"
        Display="Static"
        ErrorMessage="Please enter a company name." />

      <br /><asp:textbox
           id="PhoneBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator2"
        runat="server"
        ControlToValidate="PhoneBox"
        Display="Static"
        ErrorMessage="Please enter a phone number." />

      <br /><asp:button
           id="Button1"
           runat="server"
           text="Insert New Shipper"
           onclick="InsertShipper" />

    </form>
  </body>
</html>
<%@Page  Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
Private Sub InsertShipper (ByVal Source As Object, ByVal e As EventArgs)
  SqlDataSource1.Insert()
End Sub ' InsertShipper
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <asp:dropdownlist
        id="DropDownList1"
        runat="server"
        datasourceid="SqlDataSource1"
        datatextfield="CompanyName"
        datavaluefield="ShipperID" />

<!-- Security Note: The SqlDataSource uses a FormParameter,
     Security Note: which does not perform validation of input from the client.
     Security Note: To validate the value of the FormParameter, handle the Inserting event. -->

      <asp:sqldatasource
        id="SqlDataSource1"
        runat="server"
        connectionstring="<%$ ConnectionStrings:MyNorthwind %>"
        selectcommand="SELECT CompanyName,ShipperID FROM Shippers"
        insertcommand="INSERT INTO Shippers (CompanyName,Phone) VALUES (@CoName,@Phone)">
          <insertparameters>
            <asp:formparameter name="CoName" formfield="CompanyNameBox" />
            <asp:formparameter name="Phone"  formfield="PhoneBox" />
          </insertparameters>
      </asp:sqldatasource>

      <br /><asp:textbox
           id="CompanyNameBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator1"
        runat="server"
        ControlToValidate="CompanyNameBox"
        Display="Static"
        ErrorMessage="Please enter a company name." />

      <br /><asp:textbox
           id="PhoneBox"
           runat="server" />

      <asp:RequiredFieldValidator
        id="RequiredFieldValidator2"
        runat="server"
        ControlToValidate="PhoneBox"
        Display="Static"
        ErrorMessage="Please enter a phone number." />

      <br /><asp:button
           id="Button1"
           runat="server"
           text="Insert New Shipper"
           onclick="InsertShipper" />

    </form>
  </body>
</html>

注解

可以使用 FormParameter 类将集合中 Form 窗体变量的值绑定到参数化查询或命令中使用的参数。 如果指定了 ,但未传递相应的窗体变量, FormParameter 则将数据绑定到参数的控件可能会引发异常。 如果传递的窗体变量没有相应的值,它们也可能不显示任何数据。 设置 以 DefaultValue 在适当情况下避免这些情况。

FormParameter 提供 FormField 属性,该属性标识要绑定到的表单变量的名称,以及从 Parameter 类继承的变量的名称。

重要

FormParameter不会以任何方式验证 form 元素传递的值;它使用原始值。 在大多数情况下,可以通过处理事件(例如Selecting,由所使用的数据源控件公开的 FormParameterUpdatingInsertingDeleting 事件),在数据源控件使用它之前验证 的值。 如果 参数的值未通过验证测试,可以通过将关联CancelEventArgs类的 属性设置为 Canceltrue来取消数据操作。

构造函数

FormParameter()

初始化 FormParameter 类的未命名新实例。

FormParameter(FormParameter)

使用 original 参数指定的实例的值初始化 FormParameter 类的新实例。

FormParameter(String, DbType, String)

通过使用指定的字符串标识要绑定到的窗体变量字段,初始化 FormParameter 类的新实例。

FormParameter(String, String)

使用指定字符串标识要绑定到的窗体变量字段,初始化 FormParameter 类的一个新的已命名的实例。

FormParameter(String, TypeCode, String)

使用指定字符串标识要绑定到的窗体变量,初始化 FormParameter 类的一个新的已命名的强类型实例。

属性

ConvertEmptyStringToNull

获取或设置一个值,该值指示在 Parameter 对象绑定到的值为 Empty 时是否应将其转换为 null

(继承自 Parameter)
DbType

获取或设置参数的数据库类型。

(继承自 Parameter)
DefaultValue

指定参数的默认值(如果调用 Evaluate(HttpContext, Control) 方法时参数绑定到的值未被初始化)。

(继承自 Parameter)
Direction

指示 Parameter 对象是否用于将值绑定到控件,或者是否可以使用控件更改值。

(继承自 Parameter)
FormField

获取或设置参数绑定到的窗体变量的名称。

IsTrackingViewState

获取一个值,该值指示 Parameter 对象是否保存对其视图状态的更改。

(继承自 Parameter)
Name

获取或设置参数的名称。

(继承自 Parameter)
Size

获取或设置参数的大小。

(继承自 Parameter)
Type

获取或设置参数的类型。

(继承自 Parameter)
ValidateInput

获取或设置指示是否验证参数中的客户端输入的值。

ViewState

获取状态信息的字典,这些信息使您可以在同一页的多个请求间保存和还原 Parameter 对象的视图状态。

(继承自 Parameter)

方法

Clone()

返回当前 FormParameter 实例的副本。

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
Evaluate(HttpContext, Control)

更新并返回 FormParameter 对象的值。

GetDatabaseType()

获取与当前 DbType 实例的 CLR 类型等效的 Parameter 值。

(继承自 Parameter)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
LoadViewState(Object)

将数据源视图还原为保存过的前一视图状态。

(继承自 Parameter)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnParameterChanged()

调用包含 OnParametersChanged(EventArgs) 对象的 ParameterCollection 集合的 Parameter 方法。

(继承自 Parameter)
SaveViewState()

自页回发到服务器开始,将更改保存到 Parameter 对象的视图状态。

(继承自 Parameter)
SetDirty()

标记 Parameter 对象,以便在视图状态中记录其状态。

(继承自 Parameter)
ToString()

将此实例的值转换为其等效的字符串表示形式。

(继承自 Parameter)
TrackViewState()

使 Parameter 对象跟踪其视图状态更改,以便这些更改可以存储在控件的 ViewState 对象中并在同一页面的不同请求间保留。

(继承自 Parameter)

显式接口实现

ICloneable.Clone()

返回当前 Parameter 实例的副本。

(继承自 Parameter)
IStateManager.IsTrackingViewState

获取一个值,该值指示 Parameter 对象是否保存对其视图状态的更改。

(继承自 Parameter)
IStateManager.LoadViewState(Object)

将数据源视图还原为保存过的前一视图状态。

(继承自 Parameter)
IStateManager.SaveViewState()

自页回发到服务器开始,将更改保存到 Parameter 对象的视图状态。

(继承自 Parameter)
IStateManager.TrackViewState()

使 Parameter 对象跟踪其视图状态更改,以便这些更改可以存储在控件的 ViewState 对象中并在同一页面的不同请求间保留。

(继承自 Parameter)

适用于

另请参阅