DataRowViewConverter.cs
上传用户:szgaoree
上传日期:2009-01-05
资源大小:74k
文件大小:1k
源码类别:

Ajax

开发平台:

C#

  1. using System;
  2. using System.Text;
  3. using System.Data;
  4. namespace AjaxPro
  5. {
  6. /// <summary>
  7. /// Provides methods to serialize and deserialize a DataRowView object.
  8. /// </summary>
  9. public class DataRowViewConverter : IJavaScriptConverter
  10. {
  11. private string clientType = "Ajax.Web.DataRow";
  12. public DataRowViewConverter() : base()
  13. {
  14. }
  15. public override string Serialize(object o)
  16. {
  17. if(!(o is DataRowView))
  18. throw new NotSupportedException();
  19. StringBuilder sb = new StringBuilder();
  20. DataRowView row = (DataRowView)o;
  21. DataColumnCollection cols = row.DataView.Table.Columns;
  22. int colcount = cols.Count;
  23. bool b = true;
  24. sb.Append("new ");
  25. sb.Append(clientType);
  26. sb.Append("([");
  27. for(int i=0; i<colcount; i++)
  28. {
  29. if(b){ b = false; }
  30. else{ sb.Append(","); }
  31. sb.Append(JavaScriptSerializer.Serialize(row[cols[i].ColumnName]));
  32. }
  33. sb.Append("])");
  34. return sb.ToString();
  35. }
  36. public override Type[] SerializableTypes
  37. {
  38. get
  39. {
  40. return new Type[]{typeof(DataRowView)};
  41. }
  42. }
  43. }
  44. }