You can achieve this through two way:
Step 2: Add following ASPxGridView Event code snippet to your code – behind file (.cs)
Method 1
Step 1. Add ASPxGridView on your page:<dx:ASPxGridView ID="grvTest" AutoGenerateColumns="False" runat="server"
DataSourceID="SqlDataSource1" onhtmlrowprepared="grvTest_HtmlRowPrepared"
onhtmlrowcreated="grvTest_HtmlRowCreated">
<Columns>
<dx:GridViewDataTextColumn Caption="RowID" Name="colRowID" VisibleIndex="0"
Width="20px">
<DataItemTemplate>
<dx:ASPxLabel ID="lblRowID" runat="server" Text="lablel">
</dx:ASPxLabel>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="User Name" FieldName="UserName"
Name="colUserName" VisibleIndex="1" Width="100px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Password" FieldName="Password"
Name="colPassword" VisibleIndex="2" Width="30px">
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Role" FieldName="Role" Name="colRole"
VisibleIndex="3" Width="30px">
</dx:GridViewDataTextColumn>
</Columns>
</dx:ASPxGridView>
Step 2: Add following ASPxGridView Event code snippet to your code – behind file (.cs)
protected void grvTest_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
if (e.RowType != GridViewRowType.Data) return;
ASPxLabel label = grvTest.FindRowCellTemplateControl(e.VisibleIndex, null, "lblRowID") as ASPxLabel;
label.Text = (e.VisibleIndex + 1).ToString();
}
Method 2
The another way to do it is this one in the Columns section of your GridView control:<dx:ASPxGridView ID="grvTest" AutoGenerateColumns="False" runat="server"
DataSourceID="SqlDataSource1" >
<Columns>
<dx:GridViewDataTextColumn Caption="RowID" Name="colRowID" VisibleIndex="0"
Width="20px">
<DataItemTemplate>
<dx:ASPxLabel ID="lblRowID" runat="server" Text='<%# Container.ItemIndex + 1 %>'>
</dx:ASPxLabel>
</DataItemTemplate>
</dx:GridViewDataTextColumn>
What if i want to access this and display it in a regular asp label on the same page? How do I access the row index?
ReplyDeleteI posted a question earlier, and soon after, I figured it out myself. Here is the solution for displaying the row count in a asp label on a page;
ReplyDeleteprotected void ASPxGvRegistrants_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
if (e.RowType != GridViewRowType.Data) return;
ASPxLabel label = ASPxGvRegistrants.FindRowCellTemplateControl(e.VisibleIndex, null,
"lblRowID") as ASPxLabel;
label.Text = (e.VisibleIndex + 1).ToString();
int counter = Convert.ToInt16(txtAttendees.Text) - Convert.ToInt16(label.Text);
if (Convert.ToInt16(label.Text) >= Convert.ToInt16(txtAttendees.Text))
{
lblCounter.Text = "There are NO MORE spots left for this training session.";
}
else
lblCounter.Text = "There are " + counter + " spots left for this training.";
}
thanks Mark for posting the answer here as well for your DevExpress Grid question...
ReplyDelete