有时候我们需要在后台向JAVASCRIPT传递变量,一个简单的方法就是使用HiddenField,但是使用HiddenField只能传递字符串而不能传递其它数据(如DataTable,Hashtable),为了方便向JAVASCRIP传递DataTable,Hashtable等数据,自己开发了一个名称为Variable的ASP.NET控件,使用该控件可以方便的向JAVASCRIPT传递变量。Variable的功能有:
1.可以向Javascript传递DataTable,Hashtable等类型的变量,在页面生成一个名称与控件ID相同的变量,在页面可以使用Javascript访问该变量,获取变量的值;
2.在页面生成一个名称与控件ID相同的变量,并可以使用Javascript修改变量的值,当用户点击提交按钮后,在后台可以获得该变量修改后的值。
Variable控件使用指南
1.向前台Javascript传递变量
向前台Javascript传递变量方法非常简单,只需要设置属性Value即可,例如:
Hashtable val = new Hashtable();
val.Add("A", 1);
val.Add("B", "String");
val.Add("C", new String[] { "C1", "C2", "C3" });
val.Add("D", DateTime.Now);
MyVariable.Value = val;
MyVariable值如图所示:
2.在页面中访问变量
页面加载完成后,可以发现,Variable控件已经为你生成了一个用Javascrpt编写的同名变量,如图所示:
显然,MyVariable的值与后台的Variable控件的值是一样的,在客户端你可以方便的访问变量,例如,表达式
MyVariable["C"][1]
的值为'C2'
3.在页面修改变量的值
在页面中,你可以很方便的修改变量的值,例如:
Postback后,可以在后台获取修改后的值,如图所示:
4.Variable支持的数据类型
Variable支持传递一下数据类型:
Variable应用举例——通讯录管理
源代码下载
1.操作指示
2.后台代码:
public partial classContact: System.Web.UI.Page
{
protected voidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
//读取现存记录
DataTabledt =newDataTable();
dt.TableName ="Contact";
dt.Columns.Add("Name");
dt.Columns.Add("Tel");
dt.Columns.Add("Mail");
dt.ReadXml(Server.MapPath("contact.xml"));
//将现存记录传送到