2011-01-22 20 views
7

Tôi có Chế độ xem lưới. Nó có hai cột bị ràng buộc. Tôi cần có cột Số sê-ri làm cột đầu tiên.Để thêm Số sê-ri làm cột đầu tiên trong GridView

Tôi có thể làm điều đó bằng cách nào? Cảm ơn bạn trong Advance

+0

Làm thế nào là số serial tính từ dữ liệu? –

+0

Cảm ơn Peter. Số sê-ri không được tính từ dữ liệu. Nó chỉ cần tăng dần theo các bước 1 bắt đầu từ 1. – Ananth

Trả lời

3

Tạo một DataTable với hai cột sử dụng một cột đầu tiên làm autoincrement là đúng và AutoIncrementStep = 1 như

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

sử dụng Chỉ mục hàng một trường bị ràng buộc hoặc trên dữ liệu hàng bị ràng buộc, bạn có thể thêm cột mẫu mà bạn có thể sử dụng chỉ mục của hàng.

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

xứng đáng được nhiều upvotes hơn – rDroid

3

Đây là chi tiết của một câu trả lời bổ sung cho câu hỏi ban đầu của OP. Tôi đã có một thời gian khủng khiếp tìm ra cách để có được số chỉ số (số sê-ri trong OP) của hàng được tạo ra bởi câu trả lời của R.Ilayaraja (làm việc tuyệt vời BTW).

Trong mã của bạn đằng sau trang nếu bạn muốn nhận được các số chỉ số của hàng, bạn có thể sử dụng mã tương tự như sau:
Int32 idNumber = Convert.ToInt32(gvlisting.Rows[i].DataItemIndex.ToString()) + 1;

này giả định bạn đang sử dụng một iterator 'i' để có được giá trị khác từ các hàng của bạn và bạn cần thêm một số vào số vì chỉ mục là thứ tự (chỉ mục 0 là hàng đầu tiên). Nếu bạn không sử dụng trình lặp, chỉ cần sử dụng .Rows[0]

Tôi đã cố gắng hết sức để làm điều này, vì vậy tôi nghĩ mình sẽ đăng bài này với hy vọng nó sẽ giúp một số noob khác như tôi.

2

Thêm cột có tên Ser và đặt thành ReadOnly=false.

Sau đó thêm mã này vào ứng dụng của bạn:

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

Chỉ cần thêm mã này trong 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> 
Các vấn đề liên quan