2000082805.aspx
————————————————————-
<%@ register tagprefix="cj" namespace="cjservercontrols" %>
<html>
<head>
</head>
<body>
<form method="post" action="2000082605.aspx" runat="server">
<cj:xmldocreader listtext="au_id" listvalue="au_id" runat="server"
path="c:\inetpub\wwwroot\myasp\tutorials\authors.xml" />
</form>
</body>
</html>
2000082805a.cs
————————————————————-
using system;
using system.data;
using system.io;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
namespace cjservercontrols
{
public class xmldocreader : control, inamingcontainer
{
string _xmlpath;
string _listid;
string _listvalue;
public string path
{
get { return _xmlpath; }
set { _xmlpath = value; }
}
public string listtext
{
get { return _listid; }
set { _listid = value; }
}
public string listvalue
{
get {return _listvalue; }
set {_listvalue = value; }
}
//were are creating a member here so we can access it throughout the class
dropdownlist _ddl;
datagrid _dg;
filestream fs;
streamreader sr;
dataset ds;
protected override void prerender()
{
if (page.ispostback) {
dataview dv = new dataview(ds.tables[0]);
dv.rowfilter = listvalue + "=" + _ddl.selecteditem.text + "";
_dg = new datagrid();
_dg.datasource = dv;
_dg.databind();
controls.add(_dg);
}
}
protected override void createchildcontrols()
{
fs = new filestream(path, filemode.open, fileaccess.read);
sr = new streamreader(fs);
ds = new dataset();
ds.readxml(sr);
fs.close();
_ddl = new dropdownlist();
_ddl.datatextfield = listtext;
_ddl.datavaluefield = listvalue;
_ddl.autopostback = true;
_ddl.datasource = ds.tables[0].defaultview;
_ddl.databind();
controls.add(_ddl);
}
}
}
authors.xml
————————————————————-
<root>
<schema id="documentelement" targetnamespace="" xmlns="http://www.w3.org/1999/xmlschema"
xmlns:xdo="urn:schemas-microsoft-com:xml-xdo" xdo:datasetname="documentelement">
<element name="table">
<complextype content="elementonly">
<element name="au_id" type="string"></element>
<element name="au_lname" type="string"></element>
<element name="au_fname" type="string"></element>
<element name="phone" type="string"></element>
<element name="address" minoccurs="0" type="string"></element>
<element name="city" minoccurs="0" type="string"></element>
<element name="state" minoccurs="0" type="string"></element>
<element name="zip" minoccurs="0" type="string"></element>
<element name="contract" type="boolean"></element>
</complextype>
<unique name="constraint1" xdo:primarykey="true">
<selector>.</selector>
<field>au_id</field>
</unique>
</element>
</schema>
<documentelement>
<table>
<au_id>000-00-0000</au_id>
<au_lname>doe</au_lname>
<au_fname>john</au_fname>
<phone>foo </phone>
<address>one microsoft way</address>
<city>redmond</city>
<state>ca</state>
<zip>98005</zip>
<contract>true</contract>
</table>
<table>
<au_id>000-00-0123</au_id>
<au_lname>millington</au_lname>
<au_fname>john</au_fname>
<phone>808 555-5555</phone>
<address>one microsoft way</address>
<city>redmond</city>
<state>ca</state>
<zip>98005</zip>
<contract>false</contract>
</table>
<table>
<au_id>172-32-1176</au_id>
<au_lname>white</au_lname>
<au_fname>johnson</au_fname>
<phone>408 496-7223</phone>
<address>10932 bigge rd.</address>
<city>menlo park</city>
<state>ca</state>
<zip>94025</zip>
<contract>true</contract>
</table>
<table>
<au_id>213-46-8915</au_id>
<au_lname>green</au_lname>
<au_fname>marjorie</au_fname>
<phone>415 986-7020</phone>
<address>309 63rd st. #411</address>
<city>oakland</city>
<state>ca</state>
<zip>94618</zip>
<contract>true</contract>
</table>
<table>
<au_id>238-95-7766</au_id>
<au_lname>carson</au_lname>
<au_fname>cheryl</au_fname>
<phone>415 548-7723</phone>
<address>589 darwin ln.</address>
<city>berkeley</city>
<state>ca</state>
<zip>94705</zip>
<contract>true</contract>
</table>
<table>
<au_id>267-41-2394</au_id>
<au_lname>oleary</au_lname>
<au_fname>michael</au_fname>
<phone>408 286-2428</phone>
<address>22 cleveland av. #14</address>
<city>san jose</city>
<state>ca</state>
<zip>95128</zip>
<contract>true</contract>
</table>
<table>
<au_id>274-80-9391</au_id>
<au_lname>straight</au_lname>
<au_fname>dean</au_fname>
<phone>415 834-2919</phone>
<address>5420 college av.</address>
<city>oakland</city>
<state>ca</state>
<zip>94609</zip>
<contract>true</contract>
</table>
<table>
<au_id>341-22-1782</au_id>
<au_lname>smith</au_lname>
<au_fname>meander</au_fname>
<phone>913 843-0462</phone>
<address>10 mississippi dr.</address>
<city>lawrence</city>
<state>ks</state>
<zip>66044</zip>
<contract>false</contract>
</table>
<table>
<au_id>409-56-7008</au_id>
<au_lname>bennet</au_lname>
<au_fname>abraham</au_fname>
<phone>415 658-9932</phone>
<address>6223 bateman st.</address>
<city>berkeley</city>
<state>ca</state>
<zip>94705</zip>
<contract>true</contract>
</table>
<table>
<au_id>427-17-2319</au_id>
<au_lname>dull</au_lname>
<au_fname>ann</au_fname>
<phone>415 836-7128</phone>
<address>3410 blonde st.</address>
<city>palo alto</city>
<state>ca</state>
<zip>94301</zip>
<contract>true</contract>
</table>
<table>
<au_id>472-27-2349</au_id>
<au_lname>gringlesby</au_lname>
<au_fname>burt</au_fname>
<phone>707 938-6445</phone>
<address>po box 792</address>
<city>covelo</city>
<state>ca</state>
<zip>95428</zip>
<contract>true</contract>
</table>
<table>
<au_id>486-29-1786</au_id>
<au_lname>locksley</au_lname>
<au_fname>charlene</au_fname>
<phone>415 585-4620</phone>
<address>18 broadway av.</address>
<city>san francisco</city>
<state>ca</state>
<zip>94130</zip>
<contract>true</contract>
</table>
<table>
<au_id>527-72-3246</au_id>
<au_lname>greene</au_lname>
<au_fname>morningstar</au_fname>
<phone>615 297-2723</phone>
<address>22 graybar house rd.</address>
<city>nashville</city>
<state>tn</state>
<zip>37215</zip>
<contract>false</contract>
</table>
<table>
<au_id>648-92-1872</au_id>
<au_lname>blotchet-halls</au_lname>
<au_fname>reginald</au_fname>
<phone>503 745-6402</phone>
<address>55 hillsdale bl.</address>
<city>corvallis</city>
<state>or</state>
<zip>97330</zip>
<contract>true</contract>
</table>
<table>
<au_id>672-71-3249</au_id>
<au_lname>yokomoto</au_lname>
<au_fname>akiko</au_fname>
<phone>415 935-4228</phone>
<address>3 silver ct.</address>
<city>walnut creek</city>
<state>ca</state>
<zip>94595</zip>
<contract>true</contract>
</table>
<table>
<au_id>712-45-1867</au_id>
<au_lname>del castillo</au_lname>
<au_fname>innes</au_fname>
<phone>615 996-8275</phone>
<address>2286 cram pl. #86</address>
<city>ann arbor</city>
<state>mi</state>
<zip>48105</zip>
<contract>true</contract>
</table>
<table>
<au_id>722-51-5454</au_id>
<au_lname>defrance</au_lname>
<au_fname>michel</au_fname>
<phone>219 547-9982</phone>
<address>3 balding pl.</address>
<city>gary</city>
<state>in</state>
<zip>46403</zip>
<contract>true</contract>
</table>
<table>
<au_id>724-08-9931</au_id>
<au_lname>stringer</au_lname>
<au_fname>dirk</au_fname>
<phone>415 843-2991</phone>
<address>5420 telegraph av.</address>
<city>oakland</city>
<state>ca</state>
<zip>94609</zip>
<contract>false</contract>
</table>
<table>
<au_id>724-80-9391</au_id>
<au_lname>macfeather</au_lname>
<au_fname>stearns</au_fname>
<phone>415 354-7128</phone>
<address>44 upland hts.</address>
<city>oakland</city>
<state>ca</state>
<zip>94612</zip>
<contract>true</contract>
</table>
<table>
<au_id>756-30-7391</au_id>
<au_lname>karsen</au_lname>
<au_fname>livia</au_fname>
<phone>415 534-9219</phone>
<address>5720 mcauley st.</address>
<city>oakland</city>
<state>ca</state>
<zip>94609</zip>
<contract>true</contract>
</table>
<table>
<au_id>807-91-6654</au_id>
<au_lname>panteley</au_lname>
<au_fname>sylvia</au_fname>
<phone>301 946-8853</phone>
<address>1956 arlington pl.</address>
<city>rockville</city>
<state>md</state>
<zip>20853</zip>
<contract>true</contract>
</table>
<table>
<au_id>846-92-7186</au_id>
<au_lname>hunter</au_lname>
<au_fname>sheryl</au_fname>
<phone>415 836-7128</phone>
<address>3410 blonde st.</address>
<city>palo alto</city>
<state>ca</state>
<zip>94301</zip>
<contract>true</contract>
</table>
<table>
<au_id>893-72-1158</au_id>
<au_lname>mcbadden</au_lname>
<au_fname>heather</au_fname>
<phone>707 448-4982</phone>
<address>301 putnam</address>
<city>vacaville</city>
<state>ca</state>
<zip>95688</zip>
<contract>false</contract>
</table>
<table>
<au_id>899-46-2035</au_id>
<au_lname>ringer</au_lname>
<au_fname>anne</au_fname>
<phone>801 826-0752</phone>
<address>67 seventh av.</address>
<city>salt lake city</city>
<state>ut</state>
<zip>84152</zip>
<contract>true</contract>
</table>
<table>
<au_id>998-72-3567</au_id>
<au_lname>ringer</au_lname>
<au_fname>albert</au_fname>
<phone>801 826-0752</phone>
<address>67 seventh av.</address>
<city>salt lake city</city>
<state>ut</state>
<zip>84152</zip>
<contract>true</contract>
</table>
<table>
<au_id>999-99-9999</au_id>
<au_lname>toe</au_lname>
<au_fname>john</au_fname>
<phone>808 444-4444</phone>
<address>21 microsoft way</address>
<city>redwood</city>
<state>ca</state>
<zip>98005</zip>
<contract>false</contract>
</table>
</documentelement>
</root>
