Xairetw apantes!
Exw anaptyksei mia web efarmogh gia diaxeirish dedomenwn kai reporting gia etairies engineering consultancy. Olh h efarmogh einai grammenh se ASP.NET kai VB.NET. Prosfata prosethesa ena GIS interface gia to opoio egrapsa polla tools se javascript. To kako einai oti logw tou GIS engine pou xrhsimopoiw (Manifold) h selida me to interface einai asp. Den exoun vgalei akoma web control gia asp.net(isws mexri to kalokairi..). Mia apo tis leitourgeies sth selida afth (asp) einai h dynatothta apo to xrhsth na epilegei antikeimena sto xarth kai na vlepei info gia afta. Eidikotera gia kapoia antikeimena tou xarth (freatia parakolouthisis, stathmoi sulloghs dedomenwn klp) mporei o xrhsths na ta epilegei kai na ta prowthei gia peretairw erevna stis aspx selides. Afto ginetai mesw dhmiourgias enos xml arxeiou pou swzetai sto Mappath kathe fora pou o xrhsths epilegei kati kai sth synexeia anakaleitai apo ena Datagrid se mia aspx selida.
To xml file einai ths morfhs:
<data>
<item>
<cell name="POINT" value="p1"/>
<cell name="CATEGORY" value="C1"/>
</item>
<item>
<cell name="POINT" value="p2"/>
<cell name="CATEGORY" value="C1"/>
</item>
<item>
<cell name="POINT" value="p3"/>
<cell name="CATEGORY" value="C2"/>
</item>
</data>
To arxeio afto swzetai ws (selection.xml) sto Mappath mesw fso
<%
....
....
var rs = mapserver.ResultXml; //Na eksigisw. Edw dhmiourgeitai to recordset mou. To mapserver Object dhmiourgeitai
//apo ena GIS engine sto server. ResultXml einai mia property tou mapserver pou epistrefei
//apotelesmata apo ena spatial query se morfh xml.
MyFile = Server.Mappath("selection.xml");
var fso = Server.CreateObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile(MyFile,true);
a.Write(rs);
..%>
Sth synexeia kai mesw mias aspx selidas prospathw na diavasw to selection.xml
To provlima einai oti enw gia na to diavasw se ena xml tag prepei na xrhsimopoihsw ena xslt gia transformation kai ola einai ok, gia na to diavasw se ena datagrid den ginetai kateutheian giati den einai normalized xml arxeio.
Dhladh to :
<SPAN class=postbody>
DataSet ds = new DataSet()
ds.ReadXml(MapPath("selection.xml"), XmlReadMode.Auto )
DataGrid1.DataSource = ds.Tables("cell")
DataGrid1.DataBind()
den pezei dioti epistrefei ola ta periexomena se morfh :
ItemID name value
1 POINT p1
1 CATEGORY C1
2 POINT p2
2 CATEGORY C1
3 POINT p3
3 CATEGORY C2
Afto pou thelw omws einai :
POINT CATEGORY
P1 C1
P2 C2
P3 C3
To provlima yfistatai arxika giati to XmlDocument den ypostirizei IEnumerable.
Mi lysh pou skeftomai einai kata kapoio tropo na exw 2 template columns sto datagrid (POINT kai CATEGORY) kai na pernei to kathena data (bind) isws kapws etsi:
<%#(Ctype(Container.DataItem, System.Xml.XmlNode))("ElementName").InnerText %>
na kanw dhladh bind sta nodes to xmldocument. Gia na ginei afto omws prepei na kanw select ta nodes. Apo oti exw katalavei h XmlNode class exei mia method SelectNodes kai epistrepfei ena object XmlNodeList to opoio einai mia syllogh pou yposthrizei IEnumerable! Profanws to parapanw tha ginei me xrhsh XPath.
Ws edw exw ftasei kai ... to palevw
Idees kalodexoumenes...
" src="/cs/emoticons/emotion-8.gif">
" src="/cs/emoticons/emotion-8.gif">
" src="/cs/emoticons/emotion-8.gif">
PROOF by CONTRADICTION