russomr
asked on
Identify top 5 rows of a DataGrid
I have the following DataGrid:
<asp:DataGrid id="dgNewsArticles" AutoGenerateColumns="False " CellPadding="1" DataKeyField="RecID"
ShowFooter="false" runat="server">
<Columns>
<asp:BoundColumn HeaderText="RecID" DataField="RecID" Visible="False" />
<asp:BoundColumn DataField="DisplayAs" HeaderText="News Article" />
<asp:BoundColumn DataField="PostDate" HeaderText="Post Date" />
<asp:HyperLinkColumn ItemStyle-Width="50px" DataNavigateUrlField="RecI D" DataNavigateUrlFormatStrin g="editFil e.aspx?Rec ID={0}" Text="Edit" />
<asp:HyperLinkColumn ItemStyle-Width="50px" DataNavigateUrlField="RecI D" DataNavigateUrlFormatStrin g="deleteF ile.aspx?R ecID={0}" Text="Delete" />
</Columns>
</asp:DataGrid>
When displaying this grid on the screen, I would like to note the top 5 rows by adding a column at the beginning with an icon in it.
Any thoughts?
<asp:DataGrid id="dgNewsArticles" AutoGenerateColumns="False
ShowFooter="false" runat="server">
<Columns>
<asp:BoundColumn HeaderText="RecID" DataField="RecID" Visible="False" />
<asp:BoundColumn DataField="DisplayAs" HeaderText="News Article" />
<asp:BoundColumn DataField="PostDate" HeaderText="Post Date" />
<asp:HyperLinkColumn ItemStyle-Width="50px" DataNavigateUrlField="RecI
<asp:HyperLinkColumn ItemStyle-Width="50px" DataNavigateUrlField="RecI
</Columns>
</asp:DataGrid>
When displaying this grid on the screen, I would like to note the top 5 rows by adding a column at the beginning with an icon in it.
Any thoughts?
ASKER
I get this as an error:
The name 'IIf' does not exist in the current context
Am I missing a namespace for the IIF?
The name 'IIf' does not exist in the current context
Am I missing a namespace for the IIF?
its just an if statement....
IIf(Container.ItemIndex <= 4, True, False) =
if (Container.ItemIndex <= 4) then
true
else
false
IIf(Container.ItemIndex <= 4, True, False) =
if (Container.ItemIndex <= 4) then
true
else
false
Are you using C#? If so... this would be it:
<asp:Image runat="server" Visible='<%# ( (bool) ((int)Container.ItemIndex) <= 4 ? true : false) %>' ImageUrl="myGraphic.jpg" id="Image1" />
Or something close to that... I do just about everything in VB.NET... but that will work.
-- Jason
<asp:Image runat="server" Visible='<%# ( (bool) ((int)Container.ItemIndex)
Or something close to that... I do just about everything in VB.NET... but that will work.
-- Jason
ASKER
I understand the concept, I just can't get it working. It looks like IIf is a function that you are referencing. Where is that function located? Or where do I create that function so that it can be referenced?
Am I overthinking this?
Am I overthinking this?
ASKER
Sorry, I just can't get this to work. I keep getting
Cannot convert type 'int' to 'bool'
I am a VB programmer that is just now getting into C#, so syntax is not my cup of tea.
Is there a different way to accomplish what I'm going for? I see how the above would work, but if I can't actually get it working, it does me no good.
Cannot convert type 'int' to 'bool'
I am a VB programmer that is just now getting into C#, so syntax is not my cup of tea.
Is there a different way to accomplish what I'm going for? I see how the above would work, but if I can't actually get it working, it does me no good.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Works! Thank you. Sorry for being such a pain.
First of all, you can't really make a column specifically for the first 5 rows, but you can generate a column for the entire Grid and then only show an image for the first 5 rows. There are some alternatives, but I think this is the easiest...
Now there are multiple ways to implement this following solution, but try it this way first, add a new column:
<asp:TemplateColumn>
<ItemTemplate>
<asp:Image runat="server" Visible='<%# IIf(Container.ItemIndex <= 4, True, False) %>' ImageUrl="myGraphic.jpg" id="Image1" />
</ItemTemplate>
</asp:TemplateColumn>
This creates a new column and only shows the image for the first 5 rows, otherwise it hides the Image (doesn't render it). Good luck!
-- Jason