Ngay cả trong cố gắng tìm một câu trả lời cho vấn đề này, tôi đã không tìm thấy bất kỳ lời giải thích rõ ràng (đặc biệt là người ta không thảo luận GridViews) về cách giải quyết các lỗi sau tôi nhận được khi chạy một chương trình với một UpdatePanel:Triển khai giao diện INamingContainer cho UpdatePanel?
Message: Control with ID 'lblDisplay' being registered through RegisterAsyncPostBackControl or RegisterPostBackControl must implement either INamingContainer, IPostBackDataHandler, or IPostBackEventHandler.
các UpdatePanel là:
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:UpdatePanel ID="up1" UpdateMode="Conditional" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lblDisplay" eventname="Load" />
</Triggers>
<ContentTemplate>
<asp:HiddenField ID="hiddenZone" runat="server" />
<asp:HiddenField ID="hiddenZone2" runat="server" />
<div style='width: 150px;position:absolute; margin-left: 0;text-align:center;'>
<span id="clock" style='font-size:125%;'></span>
<asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label></div>
<div style='width:150px;position:absolute;margin-left:150px;text-align:center;text-transform:capitalize;'>
<asp:Label ID="lblDisplay2" runat="server" Text="" Interval="5000" ontick="tick"></asp:Label>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
Từ hiểu biết của tôi, tôi phải thực hiện các giao diện INamingContainer cho lblDisplay, nhưng tôi không hoàn toàn chắc chắn về làm thế nào để thực hiện điều này. Tôi có phải databind thông tin UpdatePanel không? Tạo một đối tượng mới cho INamingContainer?
UpdatePanel của tôi không được phép nhận bất kỳ thông tin nhập nào của người dùng. Hành động duy nhất diễn ra trong lblDisplay2, với sự kiện ontick của nó. Bảng điều khiển chỉ cần làm mới sau khi các sự kiện trên máy chủ có thông tin mới. Nếu lblDisplay không đăng bất cứ điều gì trở lại, một giải pháp thay thế để thực hiện điều này là gì? – LoganFrederick
@Đăng ký điều khiển Nhãn không có sự kiện OnTick ... bạn có đang cố sử dụng điều khiển Bộ hẹn giờ không? Nếu vậy, điều khiển đó phải là PostBackTrigger của bạn, không phải là nhãn. Nhãn không kích hoạt sự kiện postback - đó là sự kiện phía máy khách. Nhãn chỉ được ghi từ máy chủ. –
Có, tôi đang cố gắng sử dụng điều khiển Bộ hẹn giờ và hiểu các sự kiện ở phía máy chủ trong C#, nhưng không hoàn toàn hiểu cách nó tương tác và được bắt đầu trên phía máy khách trong ASP. Điều này có thể dẫn đến một câu hỏi riêng biệt so với câu hỏi ban đầu. – LoganFrederick