ListControl.AppendDataBoundItems Egenskap

Definition

Hämtar eller anger ett värde som anger om listobjekt rensas före databindningen.

public:
 virtual property bool AppendDataBoundItems { bool get(); void set(bool value); };
[System.Web.UI.Themeable(false)]
public virtual bool AppendDataBoundItems { get; set; }
[<System.Web.UI.Themeable(false)>]
member this.AppendDataBoundItems : bool with get, set
Public Overridable Property AppendDataBoundItems As Boolean

Egenskapsvärde

true om listobjekt inte rensas före databindningen; annars false, om objektsamlingen rensas innan databindningen utförs. Standardvärdet är false.

Attribut

Exempel

I följande kodexempel visas hur du inkluderar både databundna objekt och objekt som inte är databundna i en ListBox kontroll. Load I händelse av Pageläggs ett objekt till i Items samlingen och egenskapen AppendDataBoundItems är inställd på true. ListBox Sedan är kontrollen bunden till en DataTable kontroll. Den resulterande ListBox kontrollen innehåller både de databundna objekten och det objekt som lades till individuellt.

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
 <!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" >
 <script language="c#" runat="server">
 
    ICollection CreateDataSource() {
       DataTable dt = new DataTable();
       DataRow dr;
 
       dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
       dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
       dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
       dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
       dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
       for (int i = 0; i < 9; i++) {
          dr = dt.NewRow();
 
          dr[0] = i;
          dr[1] = "Item " + i.ToString();
          dr[2] = DateTime.Now;
          dr[3] = (i % 2 != 0) ? true : false;
          dr[4] = 1.23 * (i+1);
 
          dt.Rows.Add(dr);
       }
 
       DataView dv = new DataView(dt);
       return dv;
    }
 
    void Page_Load(Object sender, EventArgs e) {
       if (!IsPostBack) {
          RadioButtonList1.Items.Add("Non-databound item.");
          RadioButtonList1.AppendDataBoundItems = true;
          RadioButtonList1.DataSource = CreateDataSource();
          RadioButtonList1.DataTextField="StringValue";
          RadioButtonList1.DataValueField="CurrencyValue";
          RadioButtonList1.DataBind();
       }
    }
 
    void Index_Changed(Object sender, EventArgs e) {
 
       Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text +
                     " with a value of $" + RadioButtonList1.SelectedItem.Value +
                     ".";
 
    }
 
 </script>
 
 <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
 
    <form id="form1" runat="server">
 
       <asp:RadioButtonList id="RadioButtonList1" 
            OnSelectedIndexChanged="Index_Changed"
            AutoPostBack="true"
            runat="server"/>
 
       <br />
 
       <asp:Label id="Label1" runat="server"/>
 
    </form>
 
 </body>
 </html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
 <!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" >
 <script language="vb" runat="server">

    Function CreateDataSource() As ICollection
        Dim dt As New DataTable()
        Dim dr As DataRow
        
        dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
        dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
        dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
        dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
        
        Dim i As Integer
        For i = 0 To 8
            dr = dt.NewRow()
            
            dr(0) = i
            dr(1) = "Item " + i.ToString()
            dr(2) = DateTime.Now
            If (i Mod 2) <> 0 Then
                dr(3) = True
            Else
                dr(3) = False
            End If
            dr(4) = 1.23 *(i + 1)
            
            dt.Rows.Add(dr)
        Next i
        
        Dim dv As New DataView(dt)
        Return dv
    End Function

    Sub Page_Load(sender As Object, e As EventArgs)
         If Not IsPostBack Then
             RadioButtonList1.Items.Add("Non-databound item.")
             RadioButtonList1.AppendDataBoundItems = True
             RadioButtonList1.DataSource = CreateDataSource()
             RadioButtonList1.DataTextField = "StringValue"
             RadioButtonList1.DataValueField = "CurrencyValue"
             RadioButtonList1.DataBind()
         End If
    End Sub

    Sub Index_Changed(sender As Object, e As EventArgs)        
        Label1.Text = "You selected " & RadioButtonList1.SelectedItem.Text & _
            " with a value of : " & RadioButtonList1.SelectedItem.Value & "."
    End Sub
 
 </script>
 
 <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
 
    <form id="form1" runat="server">
 
       <asp:RadioButtonList id="RadioButtonList1" 
            OnSelectedIndexChanged="Index_Changed"
            AutoPostBack="true"
            runat="server"/>
 
       <br />
 
       <asp:Label id="Label1" runat="server"/>
 
    </form>
 
 </body>
 </html>

Kommentarer

Med AppendDataBoundItems egenskapen kan du lägga till objekt i ListControl objektet innan databindningen sker. Efter databindningen innehåller objektsamlingen både objekten från datakällan och tidigare tillagda objekt.

Värdet för den här egenskapen lagras i visningstillstånd.

Den här egenskapen kan inte anges med teman eller formatmallsteman. Mer information finns i ThemeableAttribute and ASP.NET Themes and Skins.

Gäller för

Se även