datarowviewconverter.cs

来自「AJAX开发工具包」· CS 代码 · 共 59 行

CS
59
字号
using System;
using System.Text;
using System.Data;

namespace AjaxPro
{
	/// <summary>
	/// Provides methods to serialize and deserialize a DataRowView object.
	/// </summary>
	public class DataRowViewConverter : IJavaScriptConverter
	{
		private string clientType = "Ajax.Web.DataRow";

		public DataRowViewConverter() : base()
		{
		}

		public override string Serialize(object o)
		{
			if(!(o is DataRowView))
				throw new NotSupportedException();
			
			StringBuilder sb = new StringBuilder();
			DataRowView row = (DataRowView)o;
			
			DataColumnCollection cols = row.DataView.Table.Columns;
			int colcount = cols.Count;

			bool b = true;

			sb.Append("new ");
			sb.Append(clientType);
			sb.Append("([");
			

			for(int i=0; i<colcount; i++)
			{
				if(b){ b = false; }
				else{ sb.Append(","); }

				sb.Append(JavaScriptSerializer.Serialize(row[cols[i].ColumnName]));
			}

			sb.Append("])");

			return sb.ToString();
		}

		public override Type[] SerializableTypes
		{
			get
			{
				return new Type[]{typeof(DataRowView)};
			}
		}

	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?