2010-07-13 23 views

Trả lời

8

Để làm một postback qua JavaScript bạn có thể gọi phía máy chủ sau đây để tạo ra các mã JavaScript cho bạn:

string postBackJavascript = Page.GetPostBackEventReference(yourControl); 

này sẽ trả về mã JavaScript __doPostBack như là một chuỗi, và bạn sẽ cần đặt nó trên trang của bạn gắn liền với một cái gì đó hoặc bạn có thể gọi trực tiếp trên __doPostBack của riêng bạn với:

__doPostBack(yourControlId,''); 

Nếu bạn đang làm điều đó cho mình và không sử dụng Page.GetPostBackEventReference thì chắc chắn rằng để có được những ClientID cho sự kiểm soát đã làm hiển thị xác nhận, như:

__doPostBack('<%= yourControl.ClientID %>',''); 

EDIT: Sau khi đọc câu hỏi của bạn, bạn không nói bạn muốn kích hoạt các postback dựa trên một điều khiển ASP.NET, bạn có thể thậm chí không được sử dụng bất kỳ ASP.NET kiểm soát như vậy trong trường hợp đó nếu bạn muốn chỉ làm một postback vani bạn có thể làm:

document.forms[0].submit(); 
+0

cũng vì bạn đã hỏi .. tôi đang cố gắng gửi bằng nút ASP.Net. ngay bây giờ tôi không thể nhận được nút KHÔNG gửi. Tôi có OnClientClick = "validate(); trả về false;" nhưng dường như không hoạt động. Bất kỳ ý tưởng ?? – bill

+0

@ sẽ làm việc ... hãy thử xóa 'validate()' và xem liệu chỉ trả về 'false false;' works. Linh cảm của tôi là bạn đang làm một cái gì đó trong 'validate()' gây ra rằng hành vi vì nó có vẻ chính xác. Có thể bắt đầu một câu hỏi khác và bao gồm mã 'validate()' của bạn. – Kelsey

+0

Bạn có thể gặp sự cố khi nhận hành vi nút để hủy khi các sự kiện được xếp chồng lên nhau. Vì vậy, postback đã được ban đầu có được bắn trước khi javascript của bạn. Vì vậy, bạn cần phải xóa sự kiện ban đầu trước khi đưa bạn lên hàng đầu. Nếu không, nút sẽ luôn gửi. – Simon

3

Nếu bạn muốn đăng lại, bạn có thể sử dụng __doPostBack() mà ASP.NET đưa vào số <form>. Hãy xem số link này. Nếu bạn muốn gửi biểu mẫu khác, chỉ cần gọi .submit() trên phần tử biểu mẫu.

3

Nó phải là đơn giản như

document.forms[0].submit(); 

Cung cấp d, bạn chỉ có một biểu mẫu trên trang, nếu không bạn cần sử dụng tên biểu mẫu thay vì chỉ mục 0.

Các vấn đề liên quan