[ Team LiB ] |
Recipe 7.2 Binding Complex Data to Web Forms ControlsProblemYou want to bind multiple columns in multiple records to an ASP.NET control. SolutionSet the control's advanced properties (see Table 7-1) before calling DataBind( ). The Web Forms page sample code defines the ListBox that is populated with data by the code-behind page logic. The code for the Web Forms page is shown in Example 7-3. Example 7-3. File: ADOCookbookCS0702.aspx<asp:ListBox id="categoriesListBox" style="Z-INDEX: 102; LEFT: 88px; POSITION: absolute; TOP: 64px" runat="server" Width="184px" Height="216px"> </asp:ListBox> The code-behind contains one event handler:
The C# code for the code-behind is shown in Example 7-4. Example 7-4. File: ADOCookbookCS0702.aspx.cs// Namespaces, variables, and constants using System; using System.Configuration; using System.Data; using System.Data.SqlClient; // . . . private void Page_Load(object sender, System.EventArgs e) { // Create a DataAdapter and use it to retrieve ID and Name // for all categories. String sqlText = "SELECT CategoryID, CategoryName FROM Categories " + "ORDER BY CategoryName"; SqlDataAdapter da = new SqlDataAdapter(sqlText, ConfigurationSettings.AppSettings["DataConnectString"]); DataTable table = new DataTable("Categories"); da.Fill(table); // Bind the table to the list box control. categoriesListBox.DataSource = table.DefaultView; categoriesListBox.DataValueField = "CategoryID"; categoriesListBox.DataTextField = "CategoryName"; categoriesListBox.DataBind( ); } DiscussionComplex data binding describes binding a multi-record control to multiple records in a data source. The DataGrid, DataList, and ListBox controls are examples of controls that support complex data binding. Each control that supports complex data binding exposes a set of properties, which are slightly different for each control, that control the binding. These properties are described in Table 7-1.
After the properties appropriate to the control are set, call the DataBind( ) method of the control or of the Page to bind the data source to the server control. |
[ Team LiB ] |