首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

,怎么解决这个有关问题

2013-06-19 
求助,如何解决这个问题!在学校刚开始学着做东西,要做b/s的一个查询,想实现在GridView中点击任意一行可以弹

求助,如何解决这个问题!
      在学校刚开始学着做东西,要做b/s的一个查询,想实现在GridView中点击任意一行可以弹出一个div,在div中显示选中行的用户详细信息,比如GridView1显示用户名等基本信息和他的记录总数,点击后传GridView1的绑定值DataKeys,用DataKeys作详细信息的查询,显示该用户细致的记录信息:

 //form.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "c=style.backgroundColor;style.backgroundColor='#00A9FF'");
                e.Row.Attributes.Add("onmouseout", "style.backgroundColor=c");
                e.Row.Attributes.Add("onclick", "javascript:open('" + value + "');");");
            }
        }

都说这样的功能必须用ajax异步传值才可以,我就照猫画虎的试了下...
//form.aspx
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
function open(value) {
            if (View1.style.visibility == 'visible') {
                View1.style.visibility = 'hidden'
            }
            else {
                View1.style.visibility = 'visible';
                View1.style.top = event.clientY;
                View1.style.left = event.clientX;
                $.ajax({
                    type: "post",
                    url: "form1.aspx",
                    data: "id=" + value,
                    dataType: "text",
                    success: function (msg) {
                        $("div#View1").html(msg);
                    }
                });
            }
        }
</script>

//form1.aspx.cs
 protected void Page_Load(object sender, EventArgs e)


        {
            if (Request.Params.Get["id"] != null)
            {
                    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["bsrunconnstring"].ConnectionString);
                    SqlDataAdapter da = new SqlDataAdapter("-—省略—- where userID ='" + Request.Params.Get["id"].ToString() + "'", conn);
                    DataTable dt = new DataTable();
                    da.Fill(dt);
                    conn.Close();
                    GVdata.DataSource = da;
                    GVdata.DataBind();
            }
        }


结果点击后整个页面就卡住了,不能操作。。。
求大家帮我,指出我用的ajax不对的地方,或者实现此功能的好方法可以让我学习下! GridView JavaScript ajax jquery
[解决办法]
后台是要返回数据的。
[解决办法]
你那样回传的是整个aspx页面上的内容和动态生成的。。返回了html,body这种标签可能出问题。。直接window.open打开页面算了。

或者动态页出问题了


function open(value) {
            if (View1.style.visibility == 'visible') {
                View1.style.visibility = 'hidden'
            }
            else {
                View1.style.visibility = 'visible';
                View1.style.top = event.clientY;
                View1.style.left = event.clientX;
                $.ajax({
                    type: "post",
                    url: "form1.aspx",
                    data: "id=" + value,


                    dataType: "text",
error:function(xhr){alert('动态页面出问题\n\n'+xhr.responseText)},////////
                    success: function (msg) {
                        $("div#View1").html(msg);
                    }
                });
            }
        }


[解决办法]
用下面的代码测试一点问题也没有,你查别的地方吧。


<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
var xhr;
function createXHR() {
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (ee) {
xhr = false;
}
}
} else if (window.XMLHttpRequest) {// 在非IE浏览器中创建XMLHttpRequest对象
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = false;
}
}


function reg() {
var form1 = document.getElementById("form1"),
d1= form1.userName.value,
d2= form1.pwd.value,
d3= form1.email.value;

createXHR(); 
    xhr.open("POST", "registerin.jsp", true);
xhr.setRequestHeader("Content-type",
                    "application/x-www-form-urlencoded");

xhr.send("name=" + d1 + "&password=" + d2 + "&email=" + d3);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var data = xhr.responseText;
var pNode = document.getElementById("ce");
pNode.innerHTML = data;
}
}; 
}
</script>
</head>

<body>
<form onsubmit="reg(this);return false;" id="form1">
 用户名:<INPUT type="text" name="userName" />
<br /> 密&nbsp;  码:<INPUT type="password" name="pwd" />
<br /> 邮&nbsp;  件:<INPUT type="text" name="email" />
<br /><INPUT type="submit" value="注册" />
</form>
<div id="ce"></div>
</body>
</html>

热点排行