当前位置: 首页 > 知识库问答 >
问题:

asp.net 语言 gridview 控件,OnSelectedIndexChanged事件跳转失效?

房育
2024-06-26

1.GridView

<asp:GridView ID="GridView1" runat="server"  OnPageIndexChanging="GridView1_PageIndexChanging" AllowPaging="True" GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"> ... </asp:GridView>

2.点击跳转事件
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectRow = GridView1.SelectedRow;
Session["Code"] = selectRow.Cells[1].Text;
... ...
// 方法1 ,js跳转
string script = @"
<script>

window.open(Details.aspx?param=add', 'add','width=800,height=500scrollbars=yes,resizable=yes');

</script>
ClientScript.RegisterStartupScript(this.GetType(), "pop",script)

//方法2 , 重定向
string url = "details.aspx?param=add";
Response.Redirect(url);
}

为什么方法1,方法2都无法跳转?
点击后只是页面刷一下。

共有1个答案

闻人宏盛
2024-06-26

在你的GridView1_SelectedIndexChanged事件处理程序中,你遇到了几个潜在的问题,这些问题可能导致你的页面没有按预期进行跳转。以下是对你代码段的分析,并给出了修复建议。

方法1(使用JavaScript进行跳转)

在你的JavaScript字符串中,你有一个单引号(')的错误使用,它导致字符串没有正确闭合。此外,ClientScript.RegisterStartupScript的使用在ASP.NET Web Forms中已经过时,现在通常使用ScriptManager.RegisterStartupScript

修复后的代码如下:

// 方法1 ,js跳转string script = @"<script type='text/javascript'>    window.open('Details.aspx?param=add', 'add','width=800,height=500,scrollbars=yes,resizable=yes');</script>";ScriptManager.RegisterStartupScript(this, this.GetType(), "pop", script, false);

请注意,我移除了错误的单引号,并添加了type='text/javascript'<script>标签中,尽管这在HTML5中不是必需的,但有时候为了兼容性,最好还是包含它。我还修复了ClientScript的使用为ScriptManager

方法2(使用Response.Redirect进行重定向)

Response.Redirect方法会立即停止当前页面的处理,并将浏览器重定向到新的URL。但是,由于GridViewSelectedIndexChanged事件是通过异步回发(通常是一个AJAX请求)触发的,所以Response.Redirect可能不会按预期工作,因为它期望一个同步的页面请求。

尽管如此,如果你的GridView实际上是在进行完整的回发(即不是AJAX绑定),那么Response.Redirect应该可以工作。但请注意,它应该放在页面的最顶部,确保没有其他代码在重定向之后执行。

修复后的代码(如果GridView确实不是通过AJAX绑定的):

// 方法2 , 重定向string url = "details.aspx?param=add";Response.Redirect(url, false); // 第二个参数设置为false以终止当前线程

但是,如果你的GridView是通过AJAX绑定的,那么你需要使用其他方法(如JavaScript)来执行重定向,就像你在方法1中所做的那样。

总结

确保你的GridView不是通过AJAX绑定的,或者如果你确实使用了AJAX,那么你需要使用JavaScript来执行页面跳转。同时,检查你的JavaScript代码是否有任何语法错误,并确保你使用的是正确的ASP.NET Web Forms API来注册脚本。

 类似资料:
  • 本文向大家介绍ASP.NET数据绑定之GridView控件,包括了ASP.NET数据绑定之GridView控件的使用技巧和注意事项,需要的朋友参考一下 GridView 是 DataGrid的后继控件,在.net framework 2 中,虽然还存在DataGrid,但是GridView已经走上了历史的前台,取代DataGrid的趋势已是势不挡。  作用:其功能是在web页面中显示数据源中的数据

  • 本文向大家介绍灵活使用asp.net中的gridview控件,包括了灵活使用asp.net中的gridview控件的使用技巧和注意事项,需要的朋友参考一下 gridview是asp.net常用的显示数据控件,对于.net开发人员来说应该是非常的熟悉了。gridview自带有许多功能,包括分页,排序等等,但是作为一个.net开发人员来说熟练掌握利用存储过程分页或者第三方自定义分页十分重要,这不仅是项

  • 本文向大家介绍ASP.NET数据绑定GridView控件使用技巧,包括了ASP.NET数据绑定GridView控件使用技巧的使用技巧和注意事项,需要的朋友参考一下 不得不说GridView控件的功能确实很强大,一个简简单单的控件就可以把数据管理的很美。在这两天做的任务中碰到的一些GridView控件中遇到的问题进行总结; ①:在GridView控件中随意显示数据库中的信息: GridView控件中

  • 本文向大家介绍汇编语言 跳转指令与C语言的条件分支,包括了汇编语言 跳转指令与C语言的条件分支的使用技巧和注意事项,需要的朋友参考一下 跳转指令 跳转指令也是一个组的指令,称为j组。其中jmp为无条件跳转,其余为条件跳转 上图为j组指令,可结合条件码访问指令加深理解 在机器指令水平上理解如何对跳转指令编码 如上图,通过反汇编软件得到机器指令与汇编语言,其中左边为机器指令编码,右边为对应汇编语言含义

  • 本文向大家介绍灵活掌握asp.net中gridview控件的多种使用方法(下),包括了灵活掌握asp.net中gridview控件的多种使用方法(下)的使用技巧和注意事项,需要的朋友参考一下 继续上篇文章的学习《灵活掌握asp.net中gridview控件的多种使用方法(上)》,在此基础上巩固gridview控件的操作使用,更上一层楼。 11.GridView实现用“...”代替超长字符串: 效果

  • 本文向大家介绍灵活掌握asp.net中gridview控件的多种使用方法(上),包括了灵活掌握asp.net中gridview控件的多种使用方法(上)的使用技巧和注意事项,需要的朋友参考一下 灵活使用asp.net中gridview控件的方法有很多种,本文内容很富,希望大家都能有所收获。 1.GridView无代码分页排序: 效果图: 小提示: 1.AllowSorting设为True,aspx代