2011-01-22 5 views
7

У меня есть вид сетки. Он имеет две связанные столбцы. Мне нужно иметь столбец серийного номера в качестве первого столбца.Чтобы добавить серийный номер в качестве первого столбца в GridView

Как я могу это сделать? Спасибо, в Advance

+0

Как серийный номер вычисляется из данных? –

+0

Спасибо, Питер. Серийный номер не вычисляется из данных. Он просто должен увеличиваться с шагом 1, начиная с 1. – Ananth

ответ

3

Создание DataTable с двумя столбцами используют первую колонку Autoincrement как истинный и AutoIncrementStep = 1, как

DataTable _test = new DataTable(); 
DataColumn c = new DataColumn("sno", typeof(int)); 
c.AutoIncrement = true; 
c.AutoIncrementSeed = 1; 
c.AutoIncrementStep = 1; 
_test.Columns.Add(c); 
_test.Columns.Add("description"); 
gvlisting.DataSource = _test; 
0

Использование Строка индексирует связанное поле или связанную строку данных, вы можете добавить столбец шаблона, в котором вы можете использовать индекс строки.

17
<asp:TemplateField HeaderText="S No"> 
       <ItemTemplate> 
        <%# Container.DataItemIndex + 1 %> 
       </ItemTemplate> 
       <ItemStyle Width="2%" /> 
      </asp:TemplateField> 
+0

заслуживает большего внимания – rDroid

3

Это больше адъюнкт ответа на исходный вопрос в ФП в. У меня было ужасное время выяснить, как получить номер индекса (серийный номер в OP) строки, созданной ответом R.Ilayaraja (который отлично работал BTW).

В коде позади страницы, если вы хотите, чтобы получить порядковый номер строки, вы можете использовать код, подобный этому:
Int32 idNumber = Convert.ToInt32(gvlisting.Rows[i].DataItemIndex.ToString()) + 1;

Это предполагает, что вы использовали итератор «я», чтобы получить другие значения из ваших строк, и вам нужно добавить его к числу, поскольку индекс является порядковым (индекс 0 является первой строкой). Если вы не используете итератор, просто используйте .Rows[0]

Я изо всех сил старался как самородка ASP.NET, чтобы понять это, поэтому я решил, что опубликую это, надеюсь, что он поможет некоторым другим нубам, таким как я.

2

Добавить столбец Ser и установить его на ReadOnly=false.

Затем добавьте этот код в приложение:

if (GridSearch.Rows.Count > 1) 
{ 
    for (int i = 0; i < GridSearch.Rows.Count-1; i++) 
    { 
     GridSearch.Rows[i].Cells[0].Value = (i + 1).ToString(); 
    } 

}

2

Просто добавьте этот код в GridView

<asp:TemplateField HeaderText="Serial No of Users"> 
       <ItemTemplate> 
        <%# ((GridViewRow)Container).RowIndex + 1%> 
       </ItemTemplate> 
       <FooterTemplate> 
        <asp:Label ID="lbltotalall" runat="server" /> 
       </FooterTemplate> 
      </asp:TemplateField> 
1
<asp:TemplateField HeaderText="SR No"> 
       <ItemTemplate> 
        <%# Container.DataItemIndex + 1 %> 
       </ItemTemplate> 
       <ItemStyle Width="5%" /> 
</asp:TemplateField> 
Смежные вопросы