T
tshad
I am confused as to when to use "Container.DataItem" and when to use
DataBinder.Eval(Container.DataItem, xxx)"?
In my VB.Net pages I use Container.DataItem.
In one of my pages I have the following (where RunProcedure just sends back
a DataReader) where I use DW:
***************************************
dbReader = myDbObject.RunProcedure("GetJobPostingsByJobTitle", parameters)
InProgressGrid.DataSource = dbReader
InProgressGrid.DataBind()
....
<asp
ataGrid
AutoGenerateColumns="false"
ID="InProgressGrid"
runat="server" >
<columns>
<asp:TemplateColumn Visible="false">
<itemtemplate>
<asp:Label ID="PositionID" Text='<%#
Container.DataItem("PositionID")%>' runat="server"/>
</itemtemplate>
</asp:TemplateColumn>
</columns
</asp
ataGrid>
************************************************
In this one I use "Container.DataItem("PositionID")" to get the data during
the DataBind.
But when I was creating this in VS 2003 C#:
*************************************************************
DataGrid1.DataSource = cmd.ExecuteReader();
DataGrid1.DataBind();
....
<asp
ataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 88px; POSITION:
absolute; TOP: 48px" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="The Title">
<ItemTemplate>
<asp:Label ID="title" Text='<%# DataBinder.Eval(Container.DataItem,
"title") %>' Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp
ataGrid>
***************************************************************
I had to do "DataBinder.Eval(Container.DataItem, "title")" instead of
"Container.DataItem["title"]" because the Container.DataItem["Title"] gave
me an error:
CS0021: Cannot apply indexing with [] to an expression of type 'object'
What is the problem here? Is it because of C# instead of VB.Net?
Thanks,
Tom
DataBinder.Eval(Container.DataItem, xxx)"?
In my VB.Net pages I use Container.DataItem.
In one of my pages I have the following (where RunProcedure just sends back
a DataReader) where I use DW:
***************************************
dbReader = myDbObject.RunProcedure("GetJobPostingsByJobTitle", parameters)
InProgressGrid.DataSource = dbReader
InProgressGrid.DataBind()
....
<asp
AutoGenerateColumns="false"
ID="InProgressGrid"
runat="server" >
<columns>
<asp:TemplateColumn Visible="false">
<itemtemplate>
<asp:Label ID="PositionID" Text='<%#
Container.DataItem("PositionID")%>' runat="server"/>
</itemtemplate>
</asp:TemplateColumn>
</columns
</asp
************************************************
In this one I use "Container.DataItem("PositionID")" to get the data during
the DataBind.
But when I was creating this in VS 2003 C#:
*************************************************************
DataGrid1.DataSource = cmd.ExecuteReader();
DataGrid1.DataBind();
....
<asp
absolute; TOP: 48px" runat="server">
<Columns>
<asp:TemplateColumn HeaderText="The Title">
<ItemTemplate>
<asp:Label ID="title" Text='<%# DataBinder.Eval(Container.DataItem,
"title") %>' Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp
***************************************************************
I had to do "DataBinder.Eval(Container.DataItem, "title")" instead of
"Container.DataItem["title"]" because the Container.DataItem["Title"] gave
me an error:
CS0021: Cannot apply indexing with [] to an expression of type 'object'
What is the problem here? Is it because of C# instead of VB.Net?
Thanks,
Tom