日期:2014-05-18  浏览次数:20427 次

请问在datagrid_itemcommand事件中用window.open打开窗体,为什么窗体没有弹出而是直接跳转了
大家好,请问我在主页面A.aspx(该页面是由别的页面通过window.open弹出的窗体)的html页的datagrid中放了一个 <asp:ButtonColumn   DataTextField= "TITLE "   HeaderText= "文档名称 "   CommandName= "View "> </asp:ButtonColumn>

后台在cs代码为
private   void   dgdDetails_ItemCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)
{
  string   cmd   =e.CommandName;
  if   (cmd   ==   "View ")
    {
this.Response.Write( " <script   language=javascript> window.open( '../b.aspx?ID= "+dgdDetails.DataKeys[e.Item.ItemIndex].ToString().Trim()+ " ',null); </script> ");
}
}

为什么窗体不是弹出来,而是直接由A.aspx跳转到b.aspx页面了,请问这是为什么.


------解决方案--------------------
因为你的window.open是全局的。这里你应该在RowDataBind的时候就给每一个button注册客户端onclick的Attribute.用客户端打开,而不是postback.