PC Review Forums Newsgroups Microsoft DotNet Microsoft ADO .NET DataView Sort

Reply

DataView Sort

 
Thread Tools Rate Thread
Old 30-06-2003, 05:36 AM   #1
Bill Burris
Guest
 
Posts: n/a
Default DataView Sort


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/


  Reply With Quote
Old 30-06-2003, 07:32 PM   #2
Bill Burris
Guest
 
Posts: n/a
Default Re: DataView Sort

"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();
> > }
> >



  Reply With Quote
Old 30-06-2003, 09:14 PM   #3
Al Cadalzo
Guest
 
Posts: n/a
Default Re: DataView Sort

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();
> > > }
> > >

>
>



  Reply With Quote
Old 30-06-2003, 09:33 PM   #4
Al Cadalzo
Guest
 
Posts: n/a
Default Re: DataView Sort

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/
>
>



  Reply With Quote
Old 01-07-2003, 02:56 AM   #5
Bill Burris
Guest
 
Posts: n/a
Default Re: DataView Sort

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/


  Reply With Quote
Reply



Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off