gridview中用数字编号的问题
想利用gridview最终实现如:
第一个记录:1.题目
...
第二个记录:2.题目
...
第三个记录:3.题目
...
就是实现数字递增编号
我这样做的:
protected void showxzgw1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label xhlbl = (Label)e.Row.FindControl("xuhaolbl");
for (int i = 1; i < showxzgw1.Rows.Count; i++)
{
xhlbl.Text = Convert.ToString(i);
}
}
}
<asp:GridView ID="showxzgw1" runat="server" AutoGenerateColumns="False"
GridLines="None" onrowdatabound="showxzgw1_RowDataBound" >
<Columns>
<asp:TemplateField HeaderText="选择题">
<ItemTemplate>
<asp:Label ID="xzidlbl" runat="server" Text='<%# Eval("id") %>' Visible="false"></asp:Label>
<asp:Label ID="xuhaolbl" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("timu") %>'></asp:Label>
...
结果 我有四条记录,前两个记录没有被编号,显示label,从第三个开始编号的,怎么回事呢?
------解决方案--------------------
你那个循环有问题,循环对同一label赋值毫无意义。
很久没用过GridView,但我记得似乎有一个类似于序号的属性可以直接在前台绑定时使用。
好象叫DataItem.ItemIndex之类的。你可以查查
------解决方案--------------------
用e.Row.RowIndex+1,不要用for循环。你可以简单的试下:
xhlbl.Text=(e.Row.RowIndex+1).ToString();