Re: DataBinder.Eval(Container.DataItem, "date") when date might be missing
From: bg (stefan_bg_edlund_at_hotmail.com)
Date: 04/16/04
- Next message: Dinçer: "Re: Question about IIS"
- Previous message: Rolf Gossen: "Store SqlConnection in SessionVariable"
- Maybe in reply to: bg: "DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Next in thread: Scott Allen: "Re: DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Reply: Scott Allen: "Re: DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Messages sorted by: [ date ] [ thread ]
Date: Fri, 16 Apr 2004 13:43:27 +0200
Hi Scott!
I finally made it after a lot of try and error. Thanks for all the help. I
had problems understanding the object model any ideas where I can learn more
so I get this (including my own code :-> )?
/Stefan
The result:
public string GetDate(Object o)
{
string ret = "";
DataRowView drv = (DataRowView) o;
if (drv.Row.Table.Columns.Contains("date"))
{
int index = drv.Row.Table.Columns.IndexOf("date");
ret = drv.Row.ItemArray.GetValue(index).ToString().Substring(0, 10);
}
return ret;
}
<asp:DataGrid
id="RssNewsGrid"
AutoGenerateColumns="False"
runat="server"
AlternatingItemStyle-BackColor="#ffffff"
HeaderStyle-BackColor="#ffffff"
OnPageIndexChanged="ChangePaging"
AllowPaging="True"
Width="100%"
Cellpadding="4"
BorderWidth="0">
<PagerStyle Mode="NumericPages" Visible="False" HorizontalAlign="Right" />
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<h2 class="<%=HeaderClass2%>"><%# DataBinder.Eval(Container.DataItem,
"title") %></h2>
<em><asp:Label CssClass="txtNormal" runat="server" Text='<%#
GetDate(Container.DataItem) %>' ' ID="Label2" NAME="Label2"/></em>
<asp:Label CssClass="txtNormal" runat="server"
Text='<%#DataBinder.Eval(Container.DataItem, "description") %>' ID="Label1"
NAME="Label1"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
Thanks again
"Scott Allen" <bitmask@[nospam].fred.net> wrote in message
news:3l6t70hc62uu7kn8p3e0o113500c6oqe1d@4ax.com...
> Well, it depends on what the DataSource is (an XmlDocument, an
> ArrayList, a DataSet, etc).
>
> Something you could try is:
>
> public string GetDate(object o)
> {
> return String.Empty;
> }
>
> and set a breakpoint on the method. Then when you run with the
> debugger you can inspect o in a quick watch window and see what type
> the data binding is passing. Then go back and declare the method with
> the correct type and work from there. A bit of a hack, but like I say,
> depending on your DataSource you'll get different types of object
> references here.
>
> HTH,
> --
> Scott
> http://www.OdeToCode.com
>
>
>
> On Thu, 15 Apr 2004 10:36:43 +0200, "bg"
> <stefan_bg_edlund@hotmail.com> wrote:
>
> >Hi Scott and thanks for the tip.
> >
> >I tried that yesterday but don't know what type to declare. DataItem
seems
> >not to exists... String wont work of couse.
> > public string GetDate2(string sIn)
> > {
> >
> >Thanks
> >/Stefan
> >
> >
> >"Scott Allen" <bitmask@[nospam].fred.net> wrote in message
> >news:ss8r70hu2tcr5dvsvi6fgj79sdhqh3oot3@4ax.com...
> >> One solution is to call a method in your page object intead of
> >> DataBinder.Eval, i.e.:
> >>
> >> <%# GetDate(Container.DataItem %>
> >>
> >> Them implement GetDate to look for the optional field and return
> >> String.Empty if not present.
> >>
> >> --
> >> Scott
> >> http://www.OdeToCode.com
> >>
> >>
> >> On Wed, 14 Apr 2004 18:19:20 +0200, "bg"
> >> <stefan_bg_edlund@hotmail.com> wrote:
> >>
> >> >Hi!
> >> >
> >> >How do I check if "date" exists before using that code?
> >> >
> >> >I've built a RSSreader and sometimes there's a date in it and
sometimes
> >not.
> >> >How can I check if it exists to avoid crash (DataBinder.Eval:
> >> >'System.Data.DataRowView' does not contain a property with the name
date)
> >> >
> >> ><asp:DataGrid
> >> > id="RssNewsGrid"
> >> > AutoGenerateColumns="False"
> >> > runat="server"
> >> > AlternatingItemStyle-BackColor="#ffffff"
> >> > HeaderStyle-BackColor="#ffffff"
> >> > OnPageIndexChanged="ChangePaging"
> >> > AllowPaging="True"
> >> > Width="100%"
> >> > Cellpadding="4"
> >> > BorderWidth="0">
> >> > <PagerStyle Mode="NumericPages" Visible="False"
HorizontalAlign="Right"
> >/>
> >> > <Columns>
> >> > <asp:TemplateColumn>
> >> > <HeaderTemplate>
> >> > </HeaderTemplate>
> >> > <ItemTemplate>
> >> > <h2 class="<%=HeaderClass2%>"><%#
DataBinder.Eval(Container.DataItem,
> >> >"title") %></h2>
> >> > <em><%# DataBinder.Eval(Container.DataItem, "date") %>
> >> > </ItemTemplate>
> >> > </asp:TemplateColumn>
> >> > </Columns>
> >> ></asp:DataGrid>
> >> >
> >> >
> >> >Thank you
> >> >/Stefan
> >> >
> >> >
> >>
> >
>
- Next message: Dinçer: "Re: Question about IIS"
- Previous message: Rolf Gossen: "Store SqlConnection in SessionVariable"
- Maybe in reply to: bg: "DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Next in thread: Scott Allen: "Re: DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Reply: Scott Allen: "Re: DataBinder.Eval(Container.DataItem, "date") when date might be missing"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|