Bài t?ng bư?c này mô t? cách thi?t l?p m?t .aspx
Trang đ? các m? HTML đư?c t?o ra s? đăng l?i cho máy ch? trong
ph?n ?ng v?i các s? ki?n c? th? c?a m?t đi?u khi?n. Ví d? như m?c đích, bài vi?t này
s? d?ng Internet Explorer Web đi?u khi?n TreeView control.
B?t đ?ng s?n AutoPostBack
S? th?t. Khi AutoPostBack là đúng cho m?t đi?u khi?n, b? đi?u khi?n có th? đăng bài
Quay l?i máy ch? đ? đáp ?ng v?i các s? ki?n mà b?n không mu?n gây ra m?t
postback.
Ví d?, thi?t l?p AutoPostBack đ?n đúng vào TreeView
ki?m soát gây ra m?t postback đ? đáp ?ng v?i nh?ng s? ki?n này: onExpand; onCollapse;
onCheck; và onSelectedIndexChange.
Sai. B?ng cách đ?t AutoPostBack thành False, b?n đăng bài tr? l?i b?ng tay trong
đáp ?ng v?i m?t s? ki?n c? th?.
T?o m?
Đ? đăng bài tr? l?i b?ng tay đ? đáp ?ng v?i onSelectedIndexChange
s? ki?n, h?y làm theo các bư?c sau.
T?o m?t ?ng d?ng Web, và sau đó đưa các TreeView đi?u khi?n vào m?t trang .aspx.
Trong .aspx trang, thi?t l?p các AutoPostBack tài s?n c?a các TreeView ki?m soát đ? Sai.
Trong các Các nút tài s?n c?a TreeView, b?m vào các B? sưu t?p elipsis (...) nút, và sau đó thêm m?t s? nút và tr? em đ? cácTreeView b? sưu t?p các nút.
X? l? các onload s? ki?n cho các trang HTML, và sau đó g?i nh?ng initTree ch?c năng. Ch?c năng này bên khách hàng s? đư?c t?o ra trong các Page_Load s? ki?n cho trang .aspx.
Trong ch? đ? xem HTML c?a các
.aspx trang, thêm m?t handler cho các onload s? ki?n đ? các nội dung t? khóa như sau:
<body onload="initTree()">
Thêm m? sau đây t? đây Page_Load ch?c năng đ? riêng c?a b?n Page_Load ch?c năng trong các M?-đ?ng sau l?p h?c cho các t?p tin .aspx.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strTreeName As String = "TreeView1"
Dim strRef As String = Page.GetPostBackEventReference(TreeView1)
Dim strScript As String = "<script language=""JavaScript""> " & vbCrLf & _
"<!-- " & vbCrLf & _
" function initTree() { " & vbCrLf & _
" " & strTreeName & ".onSelectedIndexChange = function() { " & vbCrLf & _
" if (event.oldTreeNodeIndex != event.newTreeNodeIndex) " & vbCrLf & _
" this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); " & vbCrLf & _
" window.setTimeout('" & strRef.Replace("'", "\'") & "', 0, 'JavaScript'); " & vbCrLf & _
" } " & vbCrLf & _
" } " & vbCrLf & _
"// --> " & vbCrLf & _
"</script>"
Page.RegisterClientScriptBlock("InitTree", strScript)
End Sub
Gi?i thích v? các m?
Làm th? nào các m? đư?c phát tri?n
M? đư?c cung c?p trư?c đó trong bài vi?t này đ? đư?c phát tri?n b?ng cách s? d?ng các
quy tr?nh sau:
M?t trang .aspx đ? đư?c phát tri?n và AutoPostBack Đ?i v?i các TreeView ki?m soát đ? đư?c thi?t l?p S? th?t.
.Aspx trang đư?c xem trong tr?nh duy?t Internet Explorer,
và m? ngu?n đư?c lưu vào m?t file .html.
AutoPostBack Đ?i v?i các TreeView ki?m soát đ? đư?c thi?t l?p Sai, và sau đó các trang đ? đư?c xem m?t l?n n?a trong tr?nh duy?t.
So sánh hai t?p tin và ghi nh?n s? khác bi?t đ? giúp
s?n xu?t m? đư?c cung c?p trư?c đó trong bài vi?t này.
Thông tin thêm v? các m?
M? t? các Page_Load ch?c năng trong bài vi?t này ám m? sau đây trong các
tr?nh duy?t:
Các initTree ch?c năng ch?y khi trang HTML đư?c n?p vào tr?nh duy?t. Các initTree ch?c năng ghi đè các onSelectedIndexChange s? ki?n c?a TreeView1 do đó các onSelectedIndexChange s? ki?n s? đư?c thêm vào hàng đ?i s? ki?n cho trang, và sau đó
Đăng quay l?i h? ph?c v?.
D?ng đ?u tiên c?a các m?i onSelectedIndexChange ch?c năng,
if (event.oldTreeNodeIndex != event.newTreeNodeIndex)
this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
đư?c l?y tr?c ti?p t? đ?nh ngh?a g?c cho các ch?c năng như
đư?c xác đ?nh trong t?p tin đ? lưu .html.
Thi?t l?p AutoPostBack cho TreeView đ? S? th?t hi?n th? h?nh ?nh m? sau trong HTML:
B?i v? các cơ ch? postback (trong trư?ng h?p này, __doPostBack) có th? thay đ?i trong tương lai, t?o ra các ch?c năng trên máy ch? c?a
b?ng cách s? d?ng đo?n m? sau:
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:328923