1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Use Bound Controls with Web Forms pdf

7 632 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Use bound controls with Web Forms
Định dạng
Số trang 7
Dung lượng 35,76 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

5.1 Use Bound Controls with Web Forms I want to create a Web Form that allows my users to view data much like my Windows Forms and be able to use data bound controls on it.. Technique T

Trang 1

5.1 Use Bound Controls with Web Forms

I want to create a Web Form that allows my users to view data much like my Windows Forms and be able to use data bound controls on it How do I use data bound controls on

a Web Form?

Technique

The data objects that you used in Chapter 1, "Developing Windows Forms Using Bound Controls," including OleDbDataAdapter, datasets, and so on, will be used with Web Forms as they would with Windows Forms The main difference between Windows Forms and Web Forms in this case is the extra steps needed to handle round trips to the server from the client machines For discussion on OleDBDataAdapters and datasets, see Chapter 1

The IsPostBack Property

One property that you will be using when you're developing Web forms is the IsPostBack property, which is used in the Load event of the Web Form That's right-Web Forms now have an event model much like Windows Forms You can now work with the Web Form properties and Web server control properties from the Web page's class module

The IsPostBack property is set to True if the load event is fired on a round trip from the server Therefore, the first time a Web Form is loaded, IsPostBack is False

Web Server Controls Versus HTML Controls

Within ASP.NET Web Forms, you now have the ability to use either your classic HTML controls, which are available for compatibility purposes, or the new Web server controls, which, because they run on the server, have the following advantages:

• You can access Web server control properties and methods from the Web Forms

class module, but not with HTML controls

• Because Web server controls are rendered from the server side, on the client side

they come through as pure HTML, and they are compatible with more browsers and earlier versions

• Web server controls generally have more features than their HTML counterparts,

and in some cases, they can be bound to data

Note

Trang 2

You can change some of the HTML controls to Web server controls by placing the control on the Web Form, right-clicking on the control, and choosing Run as Web Server Control from the pop-up menu

After choosing this menu option, you can see the object in your code behind your page

Note

Although you will be dealing with a ListBox Web server control, it has different properties and methods than the Windows Form ListBox control These are discussed in the following steps

The AutoPostBack Property

Web server controls have a property called AutoPostBack This property tells NET to post back to the server, which is something you need to do if you want to have an event fire off, such as the SelectedIndexChanged event of the lstCustomers list box This is also true for Button controls that are used

The DataBind Method

When you're binding Web server controls-in this case, a ListBox control-to data such as DataSet or DataTable objects, you need to invoke the DataBind method of the control that is being bound You need to do this when data changes, as you will see in the

following steps

Steps

Open and run the Visual Basic NET-Chapter 5 solution From the main page, click on the hyperlink with the caption How-To 5.1: Using Data Bound Controls with Web

Forms When the Web Form loads, you will see a list box filled with customers, and the details for the first customer will be displayed in the list (see Figure 5.1)

Figure 5.1 Arrange the controls on the form you created to look like this form

Trang 3

To start off, you will be creating a Web Form that is similar to a Windows Form that was created in Chapter 1 You will actually be creating the form exactly the way you did in the first chapter with the Windows Form, with the exception of a few commands in the code

1 Create a Web Form Then place the controls listed in Table 5.1 with the following properties set You will be using Northwind for the database to connect to

Table 5.1 Label, TextBox, ListBox, and Command Button Control Property

Settings

OleDbDataAdapter ID odaCustomerList

SelectCommand Select CustomerID, CompanyName From

Customers

OleDbDataAdapter ID odaCustomerIndividual

SelectCommand Select * From Customers Where

Customer ID = ?

Trang 4

DataSet ID dsCustomerIndividual

DataSource dsCustomerList

DataTextField CompanyName

DataValueField CustomerID

Customers.CustomerID

Customers.CompanyName

Customers.Contact

Trang 5

Text dsCustomerIndividual -

Customers.ContactTitle

Customers.Address

Text dsCustomerIndividual - Customers.City

Customers.Region

Customers.PostalCode

Customers.Country

Text dsCustomerIndividual - Customers.Phone

Text dsCustomerIndividual - Customers.Fax

NavigateURL wfrmMain.aspx

2 Add the code in Listing 5.1 to the Load event of the page (Double-click on the page to bring up the code.) The first command you see is the if statement, which tests to see whether the page is being loaded for the first time If it is, then the dsCustomerList dataset is filled using the odaCustomerList OleDbDataAdapter Next, the DataBind method is called Last, the first item in lstCustomers is

selected, and the RefreshIndividual routine is called, which is described in the next step

Trang 6

Listing 5.1 wfrmHowTo5_1.aspx.vb: Loading the Page

Private Sub Page_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

' Perform only the first time the page is loaded

If Not Page.IsPostBack Then

' Fill the customer list box dataset

Me.odaCustomerList.Fill(Me.dsCustomerList)

' Bind the list box to the dataset

Me.lstCustomers.DataBind()

' Pick the first customer in the list and

' display the individual's data

Me.lstCustomers.SelectedIndex = 0

RefreshIndividual()

End If

End Sub

3 Add the code in Listing 5.2 to the class module of the page, creating the

RefreshIndividual routine The routine starts off by clearing the dataset and then tests to make sure a customer is selected Next, the data adapter parameter is supplied with the item that is selected in lstCustomers, which will be the

CustomerID dsCustomerIndividual is filled, and the DataBind method of each of the text boxes is called

Listing 5.2 wfrmHowTo5_1.aspx.vb: Listing Detail Information About the Customers

Private Sub RefreshIndividual()

' Clear individual customer dataset

Me.dsCustomerIndividual.Clear()

If lstCustomers.SelectedIndex <> -1 Then

Me.odaCustomerIndividual.SelectCommand.Parameters(0).Value = _ lstCustomers.SelectedItem.Value

Trang 7

' Fill the dataset

Me.odaCustomerIndividual.Fill(Me.dsCustomerIndividual, "Customers")

' Call the DataBind method for each of the text boxes

Me.txtCustomerID.DataBind()

Me.txtCompanyName.DataBind()

Me.txtContactName.DataBind()

Me.txtContactTitle.DataBind()

Me.txtAddress.DataBind()

Me.txtCity.DataBind()

Me.txtRegion.DataBind()

Me.txtCountry.DataBind()

Me.txtPostalCode.DataBind()

Me.txtPhone.DataBind()

Me.txtFax.DataBind()

End If

End Sub

4 Add the code in Listing 5.3 to the SelectedIndexChanged event of lstCustomers

Listing 5.3 wfrmHowTo5_1.aspx.vb: Calling the RefreshIndividual Routine for Each New Customer Who Is Selected

Private Sub lstCustomers_SelectedIndexChanged(ByVal sender As

System.Object, _

ByVal e As System.EventArgs) Handles

lstCustomers.SelectedIndexChanged

RefreshIndividual()

End Sub

Comments

Using bound controls on Web Forms-or unbound controls, for that matter, such as list boxes-does not take much more work than it does in Windows Forms Except for

maintaining the data, binding can take more work with the round trips to the server to deal with, as you will see in How-To 5.7

Ngày đăng: 26/01/2014, 11:20

TỪ KHÓA LIÊN QUAN