Skip to main content
Home Forums Silverlight Programming Programming with JavaScript Return JsonArray from SelectedItems in a DataGrid with LINQ
1 replies. Latest Post by Darren9962 on June 27, 2009.
(0)
Darren9962
Member
5 points
24 Posts
06-27-2009 10:48 AM |
I'm working on a Silverlight control that works with some legacy ASP.Net forms. I have a DataGrid that is bound to an Observerable Collection of a class that looks like this:
[DataContract] public class Pharmacy { [DataMember] public int PharmacyID { get; set; } [DataMember] public string PharmacyName { get; set; } [DataMember] public string PharmacyAddr { get; set; } [DataMember] public string PharmacyCity { get; set; } [DataMember] public string PharmacyState { get; set; } [DataMember] public string PharmacyZip { get; set; } [DataMember] public string FaxNumber { get; set; } [DataMember] public string Notes { get; set; } [DataMember] public int Status { get; set; } }
In my Silverlight control I have a method like so:
[ScriptableMember] public JsonArray GetPharmacies() { }
I'd like to use the SelectedItems method of the DataGrid and turn one or more selected rows into a JsonArray that looks like this:
[{ iPtPharmacyID: 0, iPharmacyID: PharmacyID, sName: PharmacyName, sAddr: PharmacyAddr, sFax: FaxNumber, iStatus: Status, sInfo: Notes }]
06-27-2009 4:53 PM |
Here's how I am doing it now:
[ScriptableMember] public ScriptObject GetPharmaciesJson() { string[] ret = new string[this.PharmacyList.SelectedItems.Count]; int index = 0; foreach (Pharmacy pharm in this.PharmacyList.SelectedItems) { ret[index] = String.Format("{{iPtPharmacyID:{0},iPharmacyID:{1},sName:\"{2}\",sAddr:\"{3}\",sFax:\"{4}\",iStatus:{5},sInfo:\"{6}\"}}", 0, pharm.PharmacyID, pharm.PharmacyName,pharm.PharmacyAddr,pharm.FaxNumber,pharm.Status,pharm.Notes); } return (ScriptObject)HtmlPage.Window.Eval(String.Format("[{0}]", String.Join(",", ret))); }
...which is really ugly and long.