ListControl.AppendDataBoundItems Property

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Gets or sets a value that indicates whether list items are cleared before data binding.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

<ThemeableAttribute(False)>
Public Overridable Property AppendDataBoundItems As Boolean

Property Value

Type: System.Boolean

true if list items are not cleared before data binding; otherwise, false, if the items collection is cleared before data binding is performed. The default is false.

The AppendDataBoundItems property allows you to add items to the ListControl object before data binding occurs. After data binding, the items collection contains both the items from the data source and the previously added items.

The value of this property is stored in view state.

This property cannot be set by themes or style sheet themes. For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

The following code example demonstrates how to include both data-bound items and items that are not data-bound in a ListBox control. In the Load event for the Page, one item is added to the Items collection and the AppendDataBoundItems property is set to true. Then, the ListBox control is bound to a DataTable control. The resulting ListBox control contains both the data-bound items and the item that was added individually.

<%@ 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>

.NET Framework
Available since 2.0
Return to top
Show: