所以,我想在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之间的区别。
你为什么要这样做onclientclick? –