1. Response.Write("<script language = 'JavaScript'> window.open('url','_blank') </script>
这样子程序会跳入错误,说解析("<script language = '时发生错误。
2.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>window.open(‘URL’)</script>", true);这样子说脚本有错误,还是不能跳转。
反正我是有点绝望了,希望哪位高手给我来解决一下啊。分数不多,恳请大神指导!
我再补充一下这个问题,是一个在母板页上的contentplaceholder里面包含了一个updatepanel,这个updatepanel内有一个gridview,gridview里面包含三列的linkbutton,点击linkbutton要触发一个事件,对于事件处理完毕后,最后一件事就是打开一个新页面,然后用了好多方法都打不开,为什么啊?
protected void Gridview1_rowcommand(object sender, GridviewcommandEventArgs e )
{
***;
if(e.commandname =="**click")
{ ******;
page,clientscript.registerstartupscript(page.getTypt(),"info","<script> window.open("login.aspx");</script>");
}
else if(e.commandname =="**click")
{ ......
}
}
18 个解决方案
#1
试试ScriptManager.RegisterStartupScript
在ms ajax存在的情况下经常会有些莫名其妙的js错误,很无语,所以我从来不用
在ms ajax存在的情况下经常会有些莫名其妙的js错误,很无语,所以我从来不用
#2
response.write()
这种写法应该没错,是不是浏览器设置问题?
这种写法应该没错,是不是浏览器设置问题?
#3
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "window.open("login.aspx");", true);
#4
ScriptManager.RegisterStartupScript
用这个注册脚本是可以的,这个是专门对有Ajax的页面的脚本注册,顺带说一下 Response.Write("<script language = 'JavaScript'> window.open('url','_blank') </script>
这个从语法上来讲没错误,但是输出到页面就会有错误了,language后面好像是不支持单引号的
用这个注册脚本是可以的,这个是专门对有Ajax的页面的脚本注册,顺带说一下 Response.Write("<script language = 'JavaScript'> window.open('url','_blank') </script>
这个从语法上来讲没错误,但是输出到页面就会有错误了,language后面好像是不支持单引号的
#6
2楼的,没用过Ajax?Ajax页面是不支持Response.Write()这个方法的,谢谢
#7
ScriptManager.RegisterStartupScript
就可以解决。
就可以解决。
#8
是不支持这个方法来注册脚本!你要输出其他的还是没问题
#9
问题在于你的updatepanel,在updatepanel中用js跳转会报异常的,你可以测试下,你去掉updatepanel,肯定能跳转
#10
这个也有错啊,那应该怎么避免呢?现在是这样:我在这个updatepanel里面放置的gridview,点击了那个linkbutton之后,如果response.redirect("***.aspx"),查看了详细数据,再点返回本页面,这个gridview里面的数据就都没有了,怎么样保存这个页面,让倒回来之后的查询结果还在呢?只要我能解决这个问题,或者是通过一定的途径绕过这个问题,我就谢谢啦。
#11
ScriptManager.RegisterStartupScript你直接使用这个去注册脚本就是了,这个对象是可以的,你都response.redirect到另外一个页面去了,数据是肯定保存不了的了,除非你存在session里面,在每一次进页面里面的时候就判断一下session有没有数据,有的话就帮到gridview上去,我只能想到这个方法,不过比较耗费服务器资源
#12
或者将你的查询关键的条件穿到另外一个页面去,然后再穿回来,不过用起来比较蛋疼
#13
<asp:TemplateField HeaderText="操作" ItemStyle-CssClass="gridview_item" HeaderStyle-CssClass="gridview__headerItem">
<ItemTemplate>
<a id="aedit" runat="server">编辑</a>
</ItemTemplate>
</asp:TemplateField>
后台中
protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
if (row.RowType == DataControlRowType.DataRow)
{
DevTools.FluorescentEffect(row);
((HtmlAnchor)row.FindControl("aedit")).HRef ="***.aspx");
}
}
试试这样吧,不要linkbutton的click事件
#14
2.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>window.open(‘URL’)</script>", true);
=>
=>
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>window.open('URL')</script>", false);
or
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "window.open('URL');", true);
#15
<asp:TemplateField HeaderText="操作" ItemStyle-CssClass="gridview_item" HeaderStyle-CssClass="gridview__headerItem">
<ItemTemplate>
<a id="aedit" runat="server">详细</a>
</ItemTemplate>
</asp:TemplateField>
后台中
protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
if (row.RowType == DataControlRowType.DataRow)
{
((HtmlAnchor)row.FindControl("aedit")).HRef ="***.aspx");
}
}
DevTools.FluorescentEffect(row);
这个去掉,是添加样式的
#16
你直接href过去了 ,回来了数据一也一样没了么,没看懂楼主要用的东西的意思。
#17
你之前用的方法2,思路是没问题的,
只是你不太了解ScriptManager.RegisterClientScriptBlock这个方法
RegisterStartupScript 这个方法也可以,只是输出脚本的位置不同而已。
在你当前的应用,没有影响
只是你不太了解ScriptManager.RegisterClientScriptBlock这个方法
RegisterStartupScript 这个方法也可以,只是输出脚本的位置不同而已。
在你当前的应用,没有影响
#18
ScriptManager.RegisterStartupScript
应该可以
应该可以
#1
试试ScriptManager.RegisterStartupScript
在ms ajax存在的情况下经常会有些莫名其妙的js错误,很无语,所以我从来不用
在ms ajax存在的情况下经常会有些莫名其妙的js错误,很无语,所以我从来不用
#2
response.write()
这种写法应该没错,是不是浏览器设置问题?
这种写法应该没错,是不是浏览器设置问题?
#3
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, this.GetType(), "click", "window.open("login.aspx");", true);
#4
ScriptManager.RegisterStartupScript
用这个注册脚本是可以的,这个是专门对有Ajax的页面的脚本注册,顺带说一下 Response.Write("<script language = 'JavaScript'> window.open('url','_blank') </script>
这个从语法上来讲没错误,但是输出到页面就会有错误了,language后面好像是不支持单引号的
用这个注册脚本是可以的,这个是专门对有Ajax的页面的脚本注册,顺带说一下 Response.Write("<script language = 'JavaScript'> window.open('url','_blank') </script>
这个从语法上来讲没错误,但是输出到页面就会有错误了,language后面好像是不支持单引号的
#5
#6
2楼的,没用过Ajax?Ajax页面是不支持Response.Write()这个方法的,谢谢
#7
ScriptManager.RegisterStartupScript
就可以解决。
就可以解决。
#8
是不支持这个方法来注册脚本!你要输出其他的还是没问题
#9
问题在于你的updatepanel,在updatepanel中用js跳转会报异常的,你可以测试下,你去掉updatepanel,肯定能跳转
#10
这个也有错啊,那应该怎么避免呢?现在是这样:我在这个updatepanel里面放置的gridview,点击了那个linkbutton之后,如果response.redirect("***.aspx"),查看了详细数据,再点返回本页面,这个gridview里面的数据就都没有了,怎么样保存这个页面,让倒回来之后的查询结果还在呢?只要我能解决这个问题,或者是通过一定的途径绕过这个问题,我就谢谢啦。
#11
ScriptManager.RegisterStartupScript你直接使用这个去注册脚本就是了,这个对象是可以的,你都response.redirect到另外一个页面去了,数据是肯定保存不了的了,除非你存在session里面,在每一次进页面里面的时候就判断一下session有没有数据,有的话就帮到gridview上去,我只能想到这个方法,不过比较耗费服务器资源
#12
或者将你的查询关键的条件穿到另外一个页面去,然后再穿回来,不过用起来比较蛋疼
#13
<asp:TemplateField HeaderText="操作" ItemStyle-CssClass="gridview_item" HeaderStyle-CssClass="gridview__headerItem">
<ItemTemplate>
<a id="aedit" runat="server">编辑</a>
</ItemTemplate>
</asp:TemplateField>
后台中
protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
if (row.RowType == DataControlRowType.DataRow)
{
DevTools.FluorescentEffect(row);
((HtmlAnchor)row.FindControl("aedit")).HRef ="***.aspx");
}
}
试试这样吧,不要linkbutton的click事件
#14
2.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>window.open(‘URL’)</script>", true);
=>
=>
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "<script>window.open('URL')</script>", false);
or
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "window.open('URL');", true);
#15
<asp:TemplateField HeaderText="操作" ItemStyle-CssClass="gridview_item" HeaderStyle-CssClass="gridview__headerItem">
<ItemTemplate>
<a id="aedit" runat="server">详细</a>
</ItemTemplate>
</asp:TemplateField>
后台中
protected void grv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
if (row.RowType == DataControlRowType.DataRow)
{
((HtmlAnchor)row.FindControl("aedit")).HRef ="***.aspx");
}
}
DevTools.FluorescentEffect(row);
这个去掉,是添加样式的
#16
你直接href过去了 ,回来了数据一也一样没了么,没看懂楼主要用的东西的意思。
#17
你之前用的方法2,思路是没问题的,
只是你不太了解ScriptManager.RegisterClientScriptBlock这个方法
RegisterStartupScript 这个方法也可以,只是输出脚本的位置不同而已。
在你当前的应用,没有影响
只是你不太了解ScriptManager.RegisterClientScriptBlock这个方法
RegisterStartupScript 这个方法也可以,只是输出脚本的位置不同而已。
在你当前的应用,没有影响
#18
ScriptManager.RegisterStartupScript
应该可以
应该可以