PRB: ASP.NET cháy s? ki?n thay đ?i ngay c? khi b?n không thay đ?i giá tr? ki?m soát

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 314809 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TRI?U CH?NG

Trong trư?ng h?p c? th?, ASP.NET cháy s? thay đ?i s? ki?n cho m?t ASP.NET Web ki?m soát ngay c? khi b?n không thay đ?i s? ki?m soát.

NGUYÊN NHÂN

M?t s? đi?u khi?n, ch?ng h?n như các SelectedIndexChanged s? ki?n trong m?t Dropdowns ki?m soát ho?c các TextChanged s? ki?n trong m?t TextBox ki?m soát, d?a trên đăng k? c?a s? ki?n thay đ?i đ? s? d?ng xem nhà nư?c. B?n g?p ph?i v?n đ? này khi b?n t?o các đi?u khi?n t? đ?ng sau khi s? ki?n này đư?c n?i.

Khi ASP.NET hi?n th? h?nh ?nh trang đ? các tr?nh duy?t, các đi?u khi?n đư?c t?o ra t? đ?ng không có m?t liên k?t S? ki?n thay đ?i. B?i v? không có s? ki?n đư?c tr?nh bày, ASP.NET không lưu d?ng xem nhà nư?c. Đi?u này đư?c g?i là t?i ưu hóa nhà nư?c xem.

Khi trang là đăng tr? l?i, và khi các s? ki?n đang hooked lên, ASP.NET s? xem bang nhưng th?y r?ng không có t?n t?i. S? khác bi?t này cháy s? ki?n thay đ?i ngay c? khi các đi?u khi?n không b? thay đ?i.

GI?I PHÁP

H?y ch?c ch?n r?ng b?n treo lên s? ki?n thay đ?i cho t? đ?ng t?o đi?u khi?n trư?c khi ASP.NET ám trang. Đi?u này đ?m b?o r?ng xem nhà nư?c Đ?i v?i s? ki?m soát t?n t?i.

T?NH TR?NG

Đi?u này hành vi là do thi?t k?.

THÔNG TIN THÊM

Các bư?c đ? t?o l?i hành vi

T?o ra h?nh th?c Web

  1. T?o ra m?t m?i Visual Basic ASP.NET ?ng d?ng đ?t tên ChangeFired.
  2. M? WebForm1 trong ch? đ? thi?t k?. Kéo m?t DataList ki?m soát, m?t Nút ki?m soát, và m?t S? li?u ki?m soát vào m?u.
  3. Trong các Thêm s? li?u h?p tho?i h?p, b?m vào S? li?u untyped, sau đó b?m Ok. Gi? tên m?c đ?nh cho t?t c? các đi?u khi?n.
  4. Ch?nh s?a b? sưu t?p bàn cho DataSet1. Thêm m?t b?ng m?i đ?t tên Table1.
  5. Ch?nh s?a b? sưu t?p c?t cho Table1. Thêm m?t c?t m?i đ?t tên Column1.
  6. Nh?p vào DataList1, và sau đó thay đ?i các DataSource b?t đ?ng s?n đ? DataSet1.
  7. Nh?p chu?t ph?i DataList1, đi?m đ?n Ch?nh s?a m?u, sau đó b?m M?c m?u. Kéo m?t Dropdowns ki?m soát đ? các ItemTemplate keá tieáp.
  8. Nh?p vào DropDownList1, và sau đó thêm năm bài m?c b? sưu t?p. Đ?t các Văn b?n và các Giá trị thu?c tính kho?n m?c này đ? m?t trong nh?ng,hai, ba,b?n, và nămtương ?ng.
  9. Đ?t các AutoPostBack b?t đ?ng s?n đ? s? th?t cho DropDownList1.
  10. Ch?nh s?a b? sưu t?p c?a cho DropDownList1. Thêm các theo bi?u hi?n tùy ch?nh ràng bu?c đ? các SelectedIndex b?t đ?ng s?n:
    DataBinder.Eval(Container, "DataItem.Column1")
    					
  11. Chuy?n sang HTML xem. Đ?t các d?u v?t thu?c tính cho s? th?t trong các @ Trang ch? th? như sau:
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" 
    Inherits="ChangeFired.WebForm1" trace="true" %>
    					

Thêm t?p tin m? phía sau

  1. Nh?p chu?t ph?i vào WebForm1.aspx và b?m Xem m?.
  2. Thêm m? sau đây đ? các Page_Load s? ki?n:
    DataSet1.Tables(0).Rows.Add(New Object() {"1"})
    DataSet1.Tables(0).Rows.Add(New Object() {"2"})
    DataSet1.Tables(0).Rows.Add(New Object() {"3"})
    DataSet1.Tables(0).Rows.Add(New Object() {"4"})
    
    If Not IsPostBack Then
      DataBind()
    End If
    
    Dim objItem As DataListItem
    For Each objItem In DataList1.Items
      AddHandler CType(objItem.FindControl("DropDownList1"), _
      DropDownList).SelectedIndexChanged, AddressOf DropDownList1_SelectedIndexChanged
      If Not objItem.FindControl("DropDownList1") Is Nothing Then
        Trace.Write("Added SelectedIndexChanged Handler")
      End If
    Next
    					
  3. T?o ra m?t m?i Ph? th? t?c dư?i đây các Page_Load s? ki?n đ? x? l? các SelectedIndexChanged s? ki?n như sau:
    Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
      DataBind()
      Trace.Write("SelectedIndexChanged, DataBind()")
    
      'Uncomment the following code to resolve this problem.
      'Dim objItem As DataListItem
      'For Each objItem In DataList1.Items
      '  AddHandler CType(objItem.FindControl("DropDownList1"), _
      '  DropDownList).SelectedIndexChanged, AddressOf DropDownList1_SelectedIndexChanged
      'Next
    End Sub
    					

Ch?y các m?u

  1. Ch?y trang. Nh?n th?y r?ng t?o ra năng đ?ng Dropdowns đi?u khi?n ch?a xem ti?u bang trong d?u v?t thông tin cho các Đi?u khi?n cây.

    Đi?u này x?y ra b?i v? các cu?c g?i đ?n các DataBind phương pháp năng đ?ng t?o ra các Dropdowns đi?u khi?n, và b?n treo lên b? x? l? s? ki?n sau khi các DataBind g?i trong nh?ng Page_Load s? ki?n. B?i v? các đi?u khi?n có m?t b? x? l? s? ki?n, View State T?i ưu hóa không di?n ra.
  2. Nh?p vào nút trên trang. Nh?n th?y r?ng m?t bài tr? l?i x?y ra, và ch? m? bên trong các Page_Load s? ki?n ch?y. Xem nhà nư?c t?n t?i cho các Dropdowns đi?u khi?n b?i v? m?t x? l? s? ki?n liên k?t v?i các ki?m soát.
  3. Thay đ?i các giá tr? trong m?t trong các Dropdowns đi?u khi?n. Chú ? r?ng m?t bài tr? l?i x?y ra. Ngoài ra, thông báo đó ASP.NET cháy các Page_Load s? ki?n và ch?y các DropDownList1_SelectedIndexChanged s? ki?n.
  4. Trong các DropDownList1_SelectedIndexChanged t? ch?c s? ki?n, cu?c g?i các DataBind phương th?c m?t l?n n?a đ? t?o m?i Dropdowns đi?u khi?n.

    B?i v? các SelectedIndexChanged s? ki?n không n?i v?i các m?i Dropdowns đi?u khi?n, ASP.NET s? d?ng xem nhà nư?c t?i ưu hóa và không lưu nhà nư?c xem cho các m?i Dropdowns đi?u khi?n.
  5. Xem l?i thông tin d?u v?t cho cây ki?m soát. Thông báo mà các Dropdowns đi?u khi?n không có xem tr?ng thái.
  6. Nh?p vào nút trên trang. Nh?n th?y r?ng các bài tr? l?i x?y ra, và nh?n th?y r?ng ASP.NET ch?y các Page_Load s? ki?n. B?i v? b?n treo các SelectedIndexChanged s? ki?n đ? các Dropdowns đi?u khi?n, ASP.NET s? xem nhà nư?c đ? đư?c liên k?t v?i các đi?u khi?n.

    Tuy nhiên, b?i v? nhà nư?c xem không t?n t?i, ASP.NET cháy các SelectedIndexChanged s? ki?n, m?c dù b?n không ch?n m?t kho?n m?c.

Giải pháp

Đ? gi?i quy?t v?n đ? này, b? ghi chú m? trong các DropDownList1_SelectedIndexChanged s? ki?n đ? cho x? l? s? ki?n treo lên v?i m?i đư?c thành l?p đi?u khi?n.

Thu?c tính

ID c?a bài: 314809 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
T? khóa: 
kbdatabinding kbevent kbprb kbservercontrols kbstate kbwebforms kbmt KB314809 KbMtvi
Máy d?ch
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:314809

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com