PC Review
Forums
Newsgroups
Microsoft DotNet
Microsoft ADO .NET
DataView Sort
Forums
Newsgroups
Microsoft DotNet
Microsoft ADO .NET
DataView Sort
![]() |
DataView Sort |
|
|
Thread Tools | Rate Thread |
|
|
#1 |
|
Guest
Posts: n/a
|
In the following piece of code from my control, the Sort doesn't work. The
foreach processes the data in the order that it appears in the XML file. protected override void Render(HtmlTextWriter output) { _XmlPath = Page.Request.MapPath( @"content\" + _XmlFileName ); _ds.ReadXml( _XmlPath ); DataView dv = _ds.Tables[0].DefaultView; dv.Sort = "PagePosition ASC"; foreach( DataRow r in dv.Table.Rows ) { output.Write( "<hr width='100' color='maroon' SIZE='1' align='middle'>" ); RenderBook( output, r ); } output.Write( "<hr width='100' color='maroon' SIZE='1' align='middle'>" ); } If I put the following code on a WebForm, the data is sorted properly, but only 14 rows are displayed, not the whole table. private void Page_Load(object sender, System.EventArgs e) { string XmlPath = Page.Request.MapPath( @"content\csbooks.xml" ); DataSet ds = new DataSet(); ds.ReadXml( XmlPath ); DataView dv = ds.Tables[0].DefaultView; dv.Sort = "PagePosition ASC"; Repeater1.DataSource = dv; Repeater1.DataBind(); } Any ideas for what is going wrong in these 2 pieces of code? In the first piece of code the sort doesn't work. In the second piece of code only 14 rows are displayed by the Repeater, when there should be 27. thanks Bill -- http://www.componentsnotebook.com/ |
|
|
|
#2 |
|
Guest
Posts: n/a
|
"Al Cadalzo" <cadalzo@hotmail.com> wrote in message
news:%23vwf%23yxPDHA.452@TK2MSFTNGP11.phx.gbl... > iterate through the data view like so: > > foreach(DataRowView drv in dv) > { > DataRow r = drv.Row(); > .... > > } Thanks Al, that is just what I needed. I kept looking in the documentation and my books to find something in DataView. If I had just looked into DataView.Item, I would have discovered the DataRowView class. All the books I have give examples using DataBind to bind to a control, but as you see in my second question I also had problems with that. The second question: Any ideas for why the Repeater only displays the first 14 rows? thanks Bill -- http://www.componentsnotebook.com/ > "Bill Burris" <wburris@telusplanet.net> wrote in message > news:uyh1djrPDHA.2676@TK2MSFTNGP10.phx.gbl... > > > > private void Page_Load(object sender, System.EventArgs e) > > { > > string XmlPath = Page.Request.MapPath( @"content\csbooks.xml" ); > > DataSet ds = new DataSet(); > > ds.ReadXml( XmlPath ); > > DataView dv = ds.Tables[0].DefaultView; > > dv.Sort = "PagePosition ASC"; > > Repeater1.DataSource = dv; > > Repeater1.DataBind(); > > } > > |
|
|
|
#3 |
|
Guest
Posts: n/a
|
Bill,
Put a breakpoint on the DataBind() statement and then examine dv.Count. Is it = 27? "Bill Burris" <wburris@telusplanet.net> wrote in message news:OlVZs2yPDHA.1612@TK2MSFTNGP11.phx.gbl... > "Al Cadalzo" <cadalzo@hotmail.com> wrote in message > news:%23vwf%23yxPDHA.452@TK2MSFTNGP11.phx.gbl... > > iterate through the data view like so: > > > > foreach(DataRowView drv in dv) > > { > > DataRow r = drv.Row(); > > .... > > > > } > > Thanks Al, that is just what I needed. > > I kept looking in the documentation and my books to find something in > DataView. If I had just looked into DataView.Item, I would have discovered > the DataRowView class. All the books I have give examples using DataBind to > bind to a control, but as you see in my second question I also had problems > with that. > > The second question: Any ideas for why the Repeater only displays the first > 14 rows? > > thanks > > Bill > -- > http://www.componentsnotebook.com/ > > > "Bill Burris" <wburris@telusplanet.net> wrote in message > > news:uyh1djrPDHA.2676@TK2MSFTNGP10.phx.gbl... > > > > > > private void Page_Load(object sender, System.EventArgs e) > > > { > > > string XmlPath = Page.Request.MapPath( @"content\csbooks.xml" ); > > > DataSet ds = new DataSet(); > > > ds.ReadXml( XmlPath ); > > > DataView dv = ds.Tables[0].DefaultView; > > > dv.Sort = "PagePosition ASC"; > > > Repeater1.DataSource = dv; > > > Repeater1.DataBind(); > > > } > > > > > |
|
|
|
#4 |
|
Guest
Posts: n/a
|
Bill,
Since the number of items you're seeing is about half of the total, I'm wondering if it might have something to do with AlternatingItemTemplate? Are you specifying both an ItemTemplate and an AlternatingItemTemplate? Al "Bill Burris" <wburris@telusplanet.net> wrote in message news:uyh1djrPDHA.2676@TK2MSFTNGP10.phx.gbl... > In the following piece of code from my control, the Sort doesn't work. The > foreach processes the data in the order that it appears in the XML file. > > protected override void Render(HtmlTextWriter output) > { > _XmlPath = Page.Request.MapPath( @"content\" + _XmlFileName ); > _ds.ReadXml( _XmlPath ); > DataView dv = _ds.Tables[0].DefaultView; > dv.Sort = "PagePosition ASC"; > foreach( DataRow r in dv.Table.Rows ) > { > output.Write( "<hr width='100' color='maroon' SIZE='1' > align='middle'>" ); > RenderBook( output, r ); > } > output.Write( "<hr width='100' color='maroon' SIZE='1' > align='middle'>" ); > } > > If I put the following code on a WebForm, the data is sorted properly, but > only 14 rows are displayed, not the whole table. > > private void Page_Load(object sender, System.EventArgs e) > { > string XmlPath = Page.Request.MapPath( @"content\csbooks.xml" ); > DataSet ds = new DataSet(); > ds.ReadXml( XmlPath ); > DataView dv = ds.Tables[0].DefaultView; > dv.Sort = "PagePosition ASC"; > Repeater1.DataSource = dv; > Repeater1.DataBind(); > } > > Any ideas for what is going wrong in these 2 pieces of code? In the first > piece of code the sort doesn't work. In the second piece of code only 14 > rows are displayed by the Repeater, when there should be 27. > > thanks > > Bill > -- > http://www.componentsnotebook.com/ > > |
|
|
|
#5 |
|
Guest
Posts: n/a
|
Thanks Al
> Are you specifying both an ItemTemplate and an AlternatingItemTemplate? That's what the problem was. My AlternatingItemTemplate was just putting an <hr> between each row. By deleting the AlternatingItemTemplate and putting the <hr> at the end of the ItemTemplate solved the problem. Bill -- http://www.componentsnotebook.com/ |
|
![]() |
|
| Thread Tools | |
| Rate This Thread | |
|
|

Main Page 

