2009-09-18 31 views
5

Tôi sử dụng mã JavaScript này bên trong thẻ đầu để điền các div bằng nút duyệt để người dùng có thể tải lên hình ảnh (swfupload).Thực hiện Javascript bên trong một chế độ xem một phần trong ASP.NET MVC

<head> 
... 
<script type="text/javascript"> 
    var swfu = function() { 
     return new SWFUpload({ 
      // Backend Settings 
      // settings go here... 
      // Too long to display here 
      // Debug Settings 
      debug: false 
     }); 
    } 
    window.onload = swfu; 
</script> 
</head> 

....

<div id="swfu_container" style="margin: 0px 10px;"> 
    <div> 
    <span id="spanButtonPlaceholder"></span> 
</div> 
<div id="divFileProgressContainer" style="height: 75px;"></div> 
<div id="thumbnails"></div> 
</div> 

này hoạt động tốt, nhưng vấn đề là khi tôi cố gắng đặt mã này bên trong một cái nhìn cục bộ. Cho đến nay, tôi không thể làm được điều này.

Có ai có kinh nghiệm hơn để giải cứu không?

Cảm ơn bạn

+2

bạn thử làm gì để đưa vào một phần? Phần thứ hai của HTML (mọi thứ bên trong 'swfu_container')? –

+1

Tôi viết window.onload = swfu (trong kịch bản, bên trong thẻ head) để lấy mọi thứ bên trong 'swfu_container' (phần nằm trong phần). Vấn đề, tôi nghĩ, là khi trang được tải, một phần chưa có! Tôi tin rằng giải pháp là trong việc có được kịch bản để thực hiện chỉ khi một phần được nạp. Cảm ơn! –

+0

Nhưng làm thế nào chúng ta có thể làm điều đó? ... –

Trả lời

3

Bạn có thể đặt chức năng của mình như thế này:

<%= Ajax.ActionLink("YourAction",new AjaxOptions{ OnSuccess="swfu", UpdateTargetId = "spanButtonPlaceholder" }) %> 

nên chức năng swfu của bạn sẽ được gọi nếu cập nhật của bạn là thành công

+1

Xin lỗi vì sự chậm trễ, câu trả lời của bạn đã giải quyết được vấn đề này. Cảm ơn Gregoire! –

2

Điểm của window.onload là thực thi chức năng nhất định khi trang đã tải xong ... loading. Điều đó nói rằng, bạn nên xem xét di chuyển onload đến dưới cùng của cơ thể. Và tôi không phải là người hâm mộ lớn nhất thế giới trong việc giữ các kịch bản trong đầu. :)

+0

Tôi thấy quan điểm của bạn về việc giữ tập lệnh ở dưới cùng của cơ thể. Vấn đề là một phần chỉ được tải sau khi người dùng đã thực hiện một số hành động. Vì vậy, onload trong đầu hoặc ở dưới cùng của cơ thể, không làm các trick. Tôi đã thử đặt mã này (cả tập lệnh và HTML) vào một phần, nhưng nó không hoạt động. Tôi cần tập lệnh để chạy và chỉ điền các div khi phần xuất hiện trên màn hình. Chúng tôi làm điều đó như thế nào ?? –

1

Xem một phần được hiển thị bằng Microsoft Ajax không đánh giá mã JavaScript. Tôi sẽ đề nghị xem xét không sử dụng quan điểm một phần trong trường hợp này hoặc nhìn vào các công cụ xem khác như Spark .... hoặc đặt tất cả javascript cần thiết trong chế độ xem cha mẹ của bạn mà kinda làm cho mã của bạn hơi sloppy

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