在服务器端从HTML控件中获取数据
2007-11-22 17:15 Eugene Wang 阅读(1349) 评论(2) 编辑 收藏 举报
在ASP.NET里面,通过ViewState隐藏属性,所有服务器控件都能在客户端和服务器端保存其数据,所以呢很容易在服务器端取得用户输入的数据。
大家都知道,HTML控件是无状态的,不能保存数据,那怎么在服务端获取HTML控件的数据呢??闲着没事,瞎弄了一下。
开始想在HTML控件里加上"runat='server'"属性,心想,这样应该就能当服务器控件用了。试了一下,在代码页里还真的能用了,结果在动行后一提交,发现控件居然都是空值。仔细想想,应该是用户控件的数据都保存在客户端,当页面向服务器端发送时,数据都被丢弃了。既然这种不能用,就换一种方法。
突然想到了FORM,用FORM来试下下看看。将FORM的ACTION值设为本页,method="post",然后提交,这样就能将数据发送出去了。然后在代码页的PageLoad事件处理函数中用Request对象读取数据,成功搞定。
这是test.aspx页面代码
<body>
<fieldset>
<legend>User Infomation</legend>
<form name="mForm" action="test.aspx" method="post">
<div>
<label for="txtName">Name:</label><input type="text" id="txtName" name="txtName" size="40"/>
</div>
<div>
<label for="txtAge">Age: </label><input type="text" id="txtAge" name="txtAge" size="40"/>
</div>
<input type="submit" value=" submit "/>
</form>
</fieldset>
</body>
代码页
在PageLoad事件处理程序里
if(Request.Form["txtName"]==null&&Request.Form["txtAge"]==null)
return;
变量1 = Request.Form["txtName"];
变量2 = Request.Form["txtAge"];
//do any other thing
大家都知道,HTML控件是无状态的,不能保存数据,那怎么在服务端获取HTML控件的数据呢??闲着没事,瞎弄了一下。
开始想在HTML控件里加上"runat='server'"属性,心想,这样应该就能当服务器控件用了。试了一下,在代码页里还真的能用了,结果在动行后一提交,发现控件居然都是空值。仔细想想,应该是用户控件的数据都保存在客户端,当页面向服务器端发送时,数据都被丢弃了。既然这种不能用,就换一种方法。
突然想到了FORM,用FORM来试下下看看。将FORM的ACTION值设为本页,method="post",然后提交,这样就能将数据发送出去了。然后在代码页的PageLoad事件处理函数中用Request对象读取数据,成功搞定。
这是test.aspx页面代码
<body>
<fieldset>
<legend>User Infomation</legend>
<form name="mForm" action="test.aspx" method="post">
<div>
<label for="txtName">Name:</label><input type="text" id="txtName" name="txtName" size="40"/>
</div>
<div>
<label for="txtAge">Age: </label><input type="text" id="txtAge" name="txtAge" size="40"/>
</div>
<input type="submit" value=" submit "/>
</form>
</fieldset>
</body>
代码页
在PageLoad事件处理程序里
if(Request.Form["txtName"]==null&&Request.Form["txtAge"]==null)
return;
变量1 = Request.Form["txtName"];
变量2 = Request.Form["txtAge"];
//do any other thing