2010-03-16 27 views
17

Tôi muốn sử dụng một modalpopupextender trong trang asp.net của tôi để hiển thị một biểu mẫu phụ. Nhưng nó chỉ phải hiển thị trên các điều kiện cụ thể. Những điều kiện được xác định trong một đoạn mã javascript.Sử dụng ModalPopupExtender mà không cần phải đặt TargetControlID?

Vì vậy, quan trọng nhất, cửa sổ bật lên phương thức không phải hiển thị khi nhấp vào nút. Tuy nhiên, nếu tôi để trống thuộc tính TargetControlID, tôi nhận được ngoại lệ sau:

TargetControlID của 'ModalPopupExtender1' không hợp lệ. Giá trị không được rỗng hoặc trống. Mô tả: Một ngoại lệ không được xử lý xảy ra trong khi thực hiện yêu cầu web hiện tại. Vui lòng xem lại dấu vết ngăn xếp để biết thêm thông tin về lỗi và vị trí bắt nguồn từ mã.

Ngoại lệ chi tiết: System.InvalidOperationException: Các TargetControlID của 'ModalPopupExtender1' là không hợp lệ. Giá trị không được rỗng hoặc trống.

Tôi chỉ có TargetControlID vào nút ẩn hoặc có tùy chọn phong nha hơn không?

+0

Bạn đã sử dụng HiddenField hoặc Nút điều khiển như Id kiểm soát mục tiêu. Bạn có phải đối mặt với bất kỳ khó khăn nào có hiddenfield như targetcontrolId bởi vì tôi bây giờ là – Deeptechtons

+1

@Deeptechtons, không sử dụng một HiddenField. Sử dụng nút điều khiển, nhưng ẩn nó bằng css (style = "display: none;") như Mike đã đề cập trong câu trả lời của anh ấy. –

+0

bạn hoàn toàn đúng. Nút được giải quyết vấn đề của tôi tự hỏi có gì sai trong việc sử dụng các trường ẩn – Deeptechtons

Trả lời

19

Đặt TargetControlID thành nút ẩn (hiển thị: none;) là cách tốt nhất theo như tôi biết.

+0

Đầu tiên tôi đã thử thêm '', nhưng điều đó không hiệu quả. '' là khóa, vì câu trả lời này cho biết. – user1325179

10

TargetControlID cũng có thể được đặt thành loại HiddenField. Bằng cách đó bạn thậm chí không cần một nút

0

Crete một nút và đặt nó như TargetControlId của bạn và cung cấp cho style = "display:none"

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
     CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender> 

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" /> 
Các vấn đề liên quan