Các điều khiển danh sách
Khi bạn thêm đối tượng Repeater Control vào trang web của bạn thì hãy nhớ thiết đặt thuộc tính của nó thông qua cửa sổ Properties và sau đó tạo các mẫu khác nhau nhằm cung cấp layout cho Repeater Control.
Đối tượng ItemTemplate của Repeater Control là đối tượng con bắt buột nó cung cấp cách hiển thị cơ bản cho Repeater Control. Các đối tượng hiển thị khác có thể thêm vào để làm đẹp hơn cho Repeater Control.
Sau đây là ví dụ thể hiện việc ta thêm vào 3 dòng tiêu đề cho Repeater Control, Bạn có thể sử dụng HeaderTemplate bằng việc thêm vào những dòng mã lệng dưới đây, hãy chú ý là mã lệnh phải nằm giữa hai thẻ đóng và mở của Repeater.
Bạn vừa tạo được giao diện cơ bản về phần tiêu đề cho Repeater, để hiển thị dữ liệu cụ thể bạn cần phải dùng đối tượng ItemTemplate, to add rows to the Repeater control, you need to create the ItemTemplate. Nếu bạn muốn mỗi dòng được hiển thị khác nhau bạn cần phải thêm đối tượng AlternatingItemTemplate.
Để hiển thị dữ liệu bạn cần phải Bind (kết nối) điều khiển nhúng với nguồn dữ liệu từ đối tượng chứa dữ liệu, hay nói rõ hơn bạn phải dùng phương thức DataBinder.Eval(). Phương thức này được cung cấp bởi Visual Studio .NET nó hữu dụng vào việc đánh giá biểu thức kết nối dữ liệu đầu cuối. Phương thức này khá đơn giản, nguyên mẫu của nó có yêu cầu kiểu dữ liệu và nó có cấu trúc như sau:
<% # DataBinder.Eval(ContainerName,DataFieldName,{FormatString})%>
Chú thích:
ContainerName: Tương ứng với bộ chứa cho mỗi đối tượng dữ liệu. Ví dụ, một trang có thể chứa một trong những bộ chứa cho những đối tượng như: Repeater, DataList, và GridView controls, tham số này luôn luôn có giá trị Container.DataItem.
DataFieldName: Tương ứng với tên trường dữ liệu
FormatString: Tham số này là tuỳ chọn. Nó tương ứng với định dạng của đối tượng dữ liệu được kết nối. Bạn có thể chứa những giá trị như định dạng kiểu có ký tự N cho kiểu dữ liệu số (Number) và d cho kiểu dữ liệu ngày. Nếu đối tượng này không được chỉ định (bạn không nhập) thì đối tượng dữ liệu được định dạng theo giá trị có kiểu là Object.
Nên nhớ các dòng trong Repeater control như TEN_SINH_VIEN, DIA_CHI phải kết nối với các cột có thật trong DataTable. Repeater control sẽ hiển thị dữ liệu được kết nối với các cột có tên là TEN_SINH_VIEN, DIA_CHI khi bạn gọi phương thức DataBind() của Repeater control
Xem lại ví dụ trên, ta thấy cột thứ 3 của Repeater control là một Button được thêm vào tương ứng với thuộc tính được thiết lập là Email. Đối tượng Button Control này sẽ hiển thị trên tất cả các dòng để thiết lập Email. Khi người dùng kích vào Button control thuộc tính của nó sẽ được kích hoạt.
Dưới đây là phần FooterTemplate bao gồm cả thẻ đóng table.
Tên sinh viên
|
Địa chỉ liên lạc
|
Địa chỉ mail
|
<%# DataBinder.Eval(Container.DataItem, "TEN_SINH_VIEN") %>
|
<%# DataBinder.Eval(Container.DataItem, "DIA_CHI") %>
|
|
<%# DataBinder.Eval(Container.DataItem, "TEN_SINH_VIEN") %>
|
<%# DataBinder.Eval(Container.DataItem, "DIA_CHI")%>
|
|
|
Các sự kiện được hổ trợ bởi Repeater control:
Ví dụ, Bạn có thể tạo những dòng mã lệnh dưới đây để điều khiển sự kiện tạo ra Item bên trong đối tượng rpDanhSachSinhVien. Những dòng này có ý nghĩa là khi các đối tượng Item của Repeater control được sinh ra, Dòng thông tin sẽ được hiển thị thông qua Label Message,
protected void rpDanhSachSinhVien_ItemCreated(object sender, RepeaterItemEventArgs e)
{
Message.Text = "Tất cả các item đã được tạo.";
Message.Visible = true;
}
Ví dụ, xem xét những dòng mã lệnh dưới đây khi kích vào đối tượng Button control trên một dòng của Repeater control. Trong đoạn mã, thuộc tính CommandName của button được thiết lập là check. Khi người lệnh kích vào nút command, thì thuộc tính CommandName của Button được bẫy. Sau đó thứ tự của button được kích sẽ được chỉ định để hiển thị thông qua Label được đặt tên là Message.
protected void rpDanhSachSinhVien_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//Checking the command entered.
if (e.CommandName == "mail")
{
//Displaying the message in the Message label.
if (e.Item.ItemIndex == 0)
{
Message.Text = "Email của sinh viên là: hung12@yahoo.com";
}
if (e.Item.ItemIndex == 2)
{
Message.Text = Email của sinh viên là: tuannm@hotmail.com ";
}
}
}
|
» Tin mới nhất:
» Các tin khác: