2012-04-24 34 views
0

我有一個按鈕在GridView,並點擊時它會觸發的Javascript確認框塊背景

protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e) 

事件。在那裏我有一些邏輯,最後我註冊了一些生成彈出窗口的JavaScript。我遇到的問題是,當它出現時確認彈出。它在背景上顯示一個空白屏幕,當我點擊取消時,它會再次顯示它,否則它會導航到另一個頁面...但是當盒子向上時,背景是白色的。

我需要使它顯示出像「警報」彈出窗口,仍然顯示在後臺網站。請注意,我只能使用這些彈出窗口工作,因爲它們在整個網站中使用(「不確認」)。這是我必須添加的第一個確認框,但其他頁面上有很多提醒。所以不想改變它們,因爲它會太多工作(150多頁網站)。

謝謝

回答

1

它看起來像網頁沒有得到一個機會來渲染警告框顯示之前。將顯示JavaScript警報的代碼連接到body.onload事件;這將等待頁面在顯示警報之前完成其初始加載。

  Page.ClientScript.RegisterClientScriptBlock(
       this.GetType(), 
       "key", 
       @" 
function Redirect() { 
    location.href = 'shoppingCart.aspx'; 
} 

function showAlert() { 
    if (confirm('***Message truncated***.') == true){ 
    Redirect(); 
    }; 
} 

// If you're using JQuery, you could do something like this, otherwise you 
// would need to add the function call to the HTML body tag's onload attribute. 
// There are other alternatives, see: 
// http://stackoverflow.com/questions/1235985/attach-a-body-onload-event-with-js 
$(document).ready(function() { 
    showAlert(); 
}); 

", true); 
+0

上面的代碼示例假定您正在使用JQuery。如果你不是,它將無法工作。您可以嘗試的另一件事是使用Page.ClientScript.RegisterStartupScript()顯示警報。 – 2012-04-24 04:03:59

+0

是的,我不使用jquery :( – user710502 2012-04-24 04:07:48

+0

我的意思是我可以使用jquery,如果我必須,..什麼修改我需要做什麼? – user710502 2012-04-24 04:08:24