2012-04-24 101 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