通过ajax跳转页面后 gridview中的按钮都失效了。急急急

wen_we 2015-12-29 03:50:52
通过ajax刷新页面后 gridview中的按钮都失效了,若通过超链接直接跳转就没有问题

ajax页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="1.aspx.cs" Inherits="_1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function loadXMLDoc(i) {

var url = i;
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>


<a href="#" onclick="loadXMLDoc('5.aspx')">超链接</a>
<div id="myDiv"

style=" width:600px;margin:0 auto; text-align:center; font-size:12px; position:absolute; z-index:1; top: 303px; left: 421px;"></div>
</form>
</body>
</html>


跳转后页面前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="5.aspx.cs" Inherits="_5" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="用户ID" ReadOnly="True" />
<asp:BoundField DataField="FuncName" HeaderText="用户姓名" />
<asp:BoundField DataField="FuncDesc" HeaderText="级别" />
<asp:BoundField DataField="FuncUrl" HeaderText="地址" />
<asp:CommandField HeaderText="选择" ShowSelectButton="True" />
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
</Columns>
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</div>
</form>
</body>
</html>



跳转后页面后台代码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _5 : System.Web.UI.Page
{

//清清月儿http://blog.csdn.net/21aspnet
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=GHRQ;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}

//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr = "delete from tree where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
bind();
}

//更新
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update tree set funcname='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',funcdesc='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',funcurl='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
}

//取消
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind();
}

//绑定
public void bind()
{
string sqlstr = "select * from tree";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "tree");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ID" };//主键
GridView1.DataBind();
sqlcon.Close();
}
}
...全文
197 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐起航2020 2016-01-02
  • 打赏
  • 举报
回复
跳转之后估计有些脚本没有执行,所以失效
wen_we 2016-01-02
  • 打赏
  • 举报
回复
引用 7 楼 anminghu 的回复:
div换成iframe试试, 但是不明白你为什么这样刷新数据,用updatapanel不是更简单点
其实是想实现左边菜单,右边显示的,但是左边菜单的超链接通过ajax后,右边gridview的chick事件就都不行了
wen_we 2016-01-02
  • 打赏
  • 举报
回复
引用 7 楼 anminghu 的回复:
div换成iframe试试, 但是不明白你为什么这样刷新数据,用updatapanel不是更简单点
不行的,gridview直接出不来
anminghu 2015-12-30
  • 打赏
  • 举报
回复
div换成iframe试试, 但是不明白你为什么这样刷新数据,用updatapanel不是更简单点
  • 打赏
  • 举报
回复
已传统的 asp.net 的思路,在一个 aspx 中会有 n 多个数据绑定或者手工动态加载的 ascx。以比较现代 js 前端框架的思路,在一个 html 中会有 n 多个动态加载动态绑定的 div 。 你如果编写完全没有经过任何基础框架知识代码,那么就要注重原理的推导。对于明显是不可能靠谱的框架,尽早发现其矛盾之处(是看懂我所说的是什么原理,而不是抠我说的字眼)。
  • 打赏
  • 举报
回复
你如果把 html 手工贴到一起看看就能发现,这还是一个合法的 html 吗? 你应该先搞明白应该插入什么 html,然后再编写代码。
wen_we 2015-12-29
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
document.getElementById("myDiv").innerHTML = xmlhttp.responseText; xmlhttp.responseText 中的 js 代码都不会被执行 自然也就没有动作了
能说的具体点吗?? 我是初学者
wish907 2015-12-29
  • 打赏
  • 举报
回复
你这样的Ajax和直接跳转实现的目的有什么区别
引用 1 楼 wen_we 的回复:
怎么没有人???
这里十几天都不一定有回复
xuzuning 2015-12-29
  • 打赏
  • 举报
回复
document.getElementById("myDiv").innerHTML = xmlhttp.responseText; xmlhttp.responseText 中的 js 代码都不会被执行 自然也就没有动作了
wen_we 2015-12-29
  • 打赏
  • 举报
回复
怎么没有人???

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧