代码改变世界

在服务器端从HTML控件中获取数据

2007-11-22 17:15  Eugene Wang  阅读(1338)  评论(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