Partilhar via


HtmlSelect.DataValueField Propriedade

Definição

Obtém ou define o campo da fonte de dados para associar à propriedade Value de cada item no controle HtmlSelect.

public:
 virtual property System::String ^ DataValueField { System::String ^ get(); void set(System::String ^ value); };
public virtual string DataValueField { get; set; }
member this.DataValueField : string with get, set
Public Overridable Property DataValueField As String

Valor da propriedade

String

O campo da fonte de dados para associar à propriedade Value de cada item no controle HtmlSelect. O valor padrão é uma cadeia de caracteres vazia (""), que indica que a propriedade não foi definida.

Exemplos

O exemplo de código a seguir demonstra como usar e DataSource DataValueField as propriedades para especificar o campo da fonte de dados a ser associado à ListItem.Value propriedade de cada item no HtmlSelect controle.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<script runat="server">

      void Page_Load (Object sender, EventArgs e)
      {

        // Bind the HtmlSelect control to a data source when the page is initially loaded.
        if (!IsPostBack)
        {
      
           // Open a connection to the database and run the query.
           // Note that the connection string may vary depending on your
           // database server settings. 
           string ConnectString = "server=localhost;database=pubs;integrated security=SSPI";
           string QueryString = "select * from authors";

           SqlConnection myConnection = new SqlConnection(ConnectString);
           SqlDataAdapter myCommand = new SqlDataAdapter(QueryString, myConnection);

           // Create a dataset to store the query results.
           DataSet ds = new DataSet();
           myCommand.Fill(ds, "Authors");

           // Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds;
           Select1.DataTextField = "au_fname";
           Select1.DataValueField = "au_fname";
           Select1.DataBind();
        }

      }

      void Button_Click (Object sender, EventArgs e)
      {
       
         // Display the selected items. 
         Label1.Text = "You selected:";

         for (int i=0; i<=Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br />    - " + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br />
      Use the Control or Shift key to select multiple items. <br /><br />

      <select id="Select1"
              multiple="true" 
              runat="server"/>

      <br /><br />

      <button id="Button1"
              onserverclick="Button_Click"
              runat="server">

         Submit

      </button>

      <br /><br />

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<script runat="server">

      Sub Page_Load (sender As Object, e As EventArgs)
  
        ' Bind the HtmlSelect control to a data source when the page is initially loaded.
        If Not IsPostBack Then
        
           ' Open a connection to the database and run the query.
           ' Note that the connection string may vary depending on your
           ' database server settings.
           Dim ConnectString As String = "server=localhost;database=pubs;integrated security=SSPI"
           Dim QueryString As String = "select * from authors"

           Dim myConnection As SqlConnection = New SqlConnection(ConnectString)
           Dim myCommand As SqlDataAdapter = New SqlDataAdapter(QueryString, myConnection)

           ' Create a dataset to store the query results.
           Dim ds As DataSet = New DataSet()
           myCommand.Fill(ds, "Authors")

           ' Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds
           Select1.DataTextField = "au_fname"
           Select1.DataValueField = "au_fname"
           Select1.DataBind()
        
        End If

      End Sub

      Sub Button_Click (sender As Object, e As EventArgs)
        
         Dim i As Integer

         Label1.Text = "You selected:"

         For i = 0 To Select1.Items.Count - 1
         
            If Select1.Items(i).Selected Then
               Label1.Text = Label1.Text & "<br />    - " & Select1.Items(i).Text
            End If

         Next i

      End Sub

   </script>

</head>

<body>

   <form id="form1" runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br />
      Use the Control or Shift key to select multiple items. <br /><br />

      <select id="Select1"
              multiple="true" 
              runat="server"/>

      <br /><br />

      <button id="Button1"
              onserverclick="Button_Click"
              runat="server">

         Submit

      </button>

      <br /><br />

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>

O exemplo de código a seguir demonstra como usar e DataSourceID DataValueField as propriedades para especificar o campo da fonte de dados a ser associado à ListItem.Value propriedade de cada item no HtmlSelect controle.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" language="C#">
  
  void SubmitButton_Click (object sender, System.EventArgs e)
  {
    // Iterate through the list items in the 
    // HtmlSelect control to find the selected item.
    for (int i = 0; i <= Select1.Items.Count - 1; i++)
    {
      if (Select1.Items[i].Selected)
        // Display the Value property of the selected item.
        // This property is populated by the DataValueField property.
        Label1.Text = "The Product ID is " + Select1.Items[i].Value;
    }
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>HtmlSelect.DataValueField</title>
</head>
<body>
  <form id="Form1" runat="server">  

    <h3> HtmlSelect.DataValueField Example 2</h3>

    <p>Select an item from the list:</p>

    <select id="Select1"
      name="Select1"             
      datasourceid="SqlDataSource1"
      datatextfield="ProductName"
      datavaluefield="ProductID"
      runat="server">
    </select>
       
    <asp:sqldatasource id="SqlDataSource1"          
          connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>
    
    <asp:button id="SubmitButton"
      text="Submit"
      onclick="SubmitButton_Click"
      runat="Server">
    </asp:button>
    
    <br /><br />
    
    <asp:label id="Label1"
      runat="Server">
    </asp:label>

   </form>

</body>

</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server" language="vb">
  
  Sub SubmitButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim i As Integer
    ' Iterate through the list items in the 
    ' HtmlSelect control to find the selected item.
    For i = 0 To Select1.Items.Count - 1
      If Select1.Items(i).Selected Then
        ' Display the Value property of the selected item.
        ' This property is populated by the DataValueField property.
        Label1.Text = "The Product ID is " & Select1.Items(i).Value
      End If
    Next i
  
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>HtmlSelect.DataValueField</title>
</head>
<body>
  <form id="Form1" runat="server">  

    <h3> HtmlSelect.DataValueField Example 2</h3>

    <p>Select an item from the list:</p>

    <select id="Select1"
      name="Select1"             
      datasourceid="SqlDataSource1"
      datatextfield="ProductName"
      datavaluefield="ProductID"
      runat="server">
    </select>
       
    <asp:sqldatasource id="SqlDataSource1" 
          connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>
    
    <asp:button id="SubmitButton"
      text="Submit"
      onclick="SubmitButton_Click"
      runat="Server">
    </asp:button>
    
    <br /><br />
    
    <asp:label id="Label1"
      runat="Server">
    </asp:label>

   </form>

</body>

</html>

Comentários

Use a DataValueField propriedade para especificar qual campo da fonte de dados associar à ListItem.Value propriedade de cada item no controle. Essa propriedade é comumente usada para fornecer um valor para a ListItem.Value propriedade que difere do valor da ListItem.Text propriedade.

A HtmlSelect classe fornece duas propriedades para especificar a fonte de dados à qual associar. A DataSource propriedade permite que você associe um HtmlSelect controle a qualquer coleção que implemente as interfaces ou IListSource as IEnumerable interfaces (comoSystem.Data.DataView, System.Collections.ArrayListouSystem.Collections.Generic.List<T>). Ao usar a DataSource propriedade para especificar a fonte de dados, você deve chamar explicitamente o DataBind método para associar o controle e sua DataValueField propriedade à fonte de dados.

A DataSourceID propriedade permite que você associe um HtmlSelect controle a um controle de fonte de dados que representa uma fonte de dados. Quando você usa a DataSourceID propriedade para especificar a fonte de dados, o HtmlSelect controle e sua DataValueField propriedade são automaticamente associados ao controle da fonte de dados. Portanto, você não precisa chamar explicitamente o DataBind método.

Aplica-se a

Confira também