Response.Redirect不按预期工作 - 页面刷新本身,没有重定向发生
所以,我想在gridview中有一个字段,它是一个打开详细信息页面的链接,基于点击的行。当我手动去它的时候,详细信息页面是有效的,但我似乎无法通过调用一个执行Response.Redirect(URL)的函数来访问它 - 相反,当我点击linkbutton时,做回发并保持自己。Response.Redirect不按预期工作 - 页面刷新本身,没有重定向发生
我在做什么错?我应该使用Server.Transfer()吗?我宁愿使用重定向,因为在我看来,使用url更新在我看来就像是一个接口优势。
这是sharepoint webpart的一部分,另一页在同一个sharepoint服务器上,是一个不同的webparts集合。
<asp:Gridview ID="grdWU" runat="server" [+bunch of settings]>
<Columns>
<asp:TemplateField HeaderText="Workunit #" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Linkbutton ID="Workunit" runat="server" **OnClientClick="OpenDetails"** Text='<%# Bind("Workunit") %>'></asp:Linkbutton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:Gridview>
在背后类的代码:
protected void OpenDetails(object sender, EventArgs e)
{
GridViewRow clickedRow = ((LinkButton) sender).NamingContainer as GridViewRow;
Button btnWorkunit = (Button)clickedRow.FindControl("Workunit");
//Response.Redirect(workunitdetailsurl + "?Workunit=" + activeworkunit.ID, true);
Response.Redirect("http://www.google.com");
}
绝望/诊断的,我试图重新定向到谷歌,而不是我制作的URL ......仍然一无所获。该页面只刷新自己。难道我做错了什么?
Post-answer编辑:我想我没有正确理解onclick和onclientclick之间的区别。
你能证实你的活动实际上是在开火吗?尝试使用LinkButton的OnClick
事件而不是OnClientClick
。
此外,尝试使用第二重载Response.Redirect
它接受一个布尔值,指示要结束当前页面的执行:
Response.Redirect("http://www.google.com", true); //Indicates that the execution of the current page should terminate.
我其实已经尝试过了。 – sylverfyre
我更新了我的回复,建议在您的linkbutton上使用'OnClick'而不是'OnClientClick' –
当我使用OnClick时,我得到 - 无法强制类型为'System.Web.UI.WebControls.LinkButton'的对象输入'System。 Web.UI.WebControls.Button”。 要进一步看linkbuttons ...我在印象之下,他们的行为更像一个按钮比这... – sylverfyre
的Response.Redirect引发ThreadAbortException ...尝试来处理异常,你也可以尝试像输入按钮或超链接,而不是项目模板中的链接按钮的HTML控件..
你为什么要这样做onclientclick? –