ASP.NET服务器端控件实际上是用隐藏字段(INPUT TYPE=HIDDEN)来存储变量的值并且发送给服务器端,服务器端获得后分拆处理,得到每个控件变更的值以及属性。
那我们是不是可以在客户端创建脚本,把客户端生成的数据返回给服务器端处理呢?
答案是肯定的。
首先,是注册隐藏字段,使用如下代码:
If Not IsPostBack Then
ClientScript.RegisterHiddenField("__Gantt", String.Empty)
End If
其作用不仅仅是在HTML中生成<INPUT TYPE=HIDDEN ID="__GANTT">的标签,同时也在服务器端注册了此隐藏字段作为HTTP请求的回发参数,意思就是ASP.NET会主动去解析它的内容。
然后我们可以放一个服务器端控件在客户端,如下:
<asp:Button ID="btnSubmit" runat="server" Text="Submit"/>
而我们需要做的就是把客户端处理得到的数据放进隐藏字段里,当然数据处理在客户端进行,而值的存放只在提交前执行,所以我们需要激活一个客户端方法让它在提交表单前执行。
document.form1.onsubmit=OnSubmit; // 这句放在Body的OnLoad事件中
// 以下是存储数据的方法
function OnSubmit()
{
document.getElementById("__Gantt").value="Data generated from client";
}
以上就是从客户端向服务器端发送数据的方法,以后还会有其它内容共享。笔者主要关注ASP.NET、Web Services以及最新的.NET Framework 3.0、3.5以及SilverLight,有大家感兴趣的内容可以一起研究。
那我们是不是可以在客户端创建脚本,把客户端生成的数据返回给服务器端处理呢?
答案是肯定的。
首先,是注册隐藏字段,使用如下代码:
If Not IsPostBack Then
ClientScript.RegisterHiddenField("__Gantt", String.Empty)
End If
其作用不仅仅是在HTML中生成<INPUT TYPE=HIDDEN ID="__GANTT">的标签,同时也在服务器端注册了此隐藏字段作为HTTP请求的回发参数,意思就是ASP.NET会主动去解析它的内容。
然后我们可以放一个服务器端控件在客户端,如下:
<asp:Button ID="btnSubmit" runat="server" Text="Submit"/>
而我们需要做的就是把客户端处理得到的数据放进隐藏字段里,当然数据处理在客户端进行,而值的存放只在提交前执行,所以我们需要激活一个客户端方法让它在提交表单前执行。
document.form1.onsubmit=OnSubmit; // 这句放在Body的OnLoad事件中
// 以下是存储数据的方法
function OnSubmit()
{
document.getElementById("__Gantt").value="Data generated from client";
}
以上就是从客户端向服务器端发送数据的方法,以后还会有其它内容共享。笔者主要关注ASP.NET、Web Services以及最新的.NET Framework 3.0、3.5以及SilverLight,有大家感兴趣的内容可以一起研究。