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

关于后台获取不到HiddenField值的有关问题

2012-11-16 
关于后台获取不到HiddenField值的问题通过点击某个按钮,然后给HiddenField赋值,赋值之后将值传到后台 利用

关于后台获取不到HiddenField值的问题
通过点击某个按钮,然后给HiddenField赋值,赋值之后将值传到后台 利用XMLHttpRequest 技术去实现局部刷新

JScript code
 function GetData(p) {               document.getElementById("HiddenField1").value =data;//data为某个textbox我自己输的值,是变值        document.getElementById("d").innerHTML = "正在读取数据……";        h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");        h.open("GET", '<%=Request.FilePath %>?id=' + p.value, true);        h.onreadystatechange = function () {            if (h.readyState == 4) {                if (h.status >= 200 && h.status < 300) {                    document.getElementById("d").innerHTML = h.responseText;                }                else {                    document.getElementById("d").innerHTML = "<h2>数据操作错误:</h2>" + h.responseText;                }            }        }        h.send(null);    }


后台代码是:

C# code
 protected void Page_Load(object sender, EventArgs e)    {        if (Request.QueryString["id"] == "1")        {            string s = this.HiddenField1.Value;//此处获取的s为空            Response.ClearContent();            GridView1.DataSource = getDataSource();            GridView1.DataBind();            System.Text.StringBuilder sb = new System.Text.StringBuilder();            System.IO.StringWriter sw = new System.IO.StringWriter(sb);            HtmlTextWriter htw = new HtmlTextWriter(sw);            Literal header = new Literal();            header.Text = "<h2>项目" + Request.QueryString["id"] + "</h2>";            Header.Controls.Add(header);            Header.RenderControl(htw);            GridView1.RenderControl(htw);            Response.Write("这里查询数据,输出结果就可以了。结果:" + sb.ToString());            Response.End();        }    }


但是每次获取的值都是空的,个人理解是页面重新load了。但是我的想法是保存我textbox输入的值,然后跳到后台处理,如何做?

[解决办法]
js设置的值在服务器端不能通过 objID.Value获取,要使用Request对象来获取,而且要提交了这个控件

 
JScript code
function GetData(p) {               document.getElementById("HiddenField1").value =data;//data为某个textbox我自己输的值,是变值        document.getElementById("d").innerHTML = "正在读取数据……";        h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");//要发送给动态页        h.open("GET", '<%=Request.FilePath %>?id=' + p.value+'&HiddenField1'+escape(data), true);        h.onreadystatechange = function () {            if (h.readyState == 4) {                if (h.status >= 200 && h.status < 300) {                    document.getElementById("d").innerHTML = h.responseText;                }                else {                    document.getElementById("d").innerHTML = "<h2>数据操作错误:</h2>" + h.responseText;                }            }        }        h.send(null);    } 

热点排行