asp.net DataGrid绑定行号,怎么做啊?做过的指导一下。

didibaba 2005-05-29 02:08:08
我要在这里加以个序号 head1 head2 head3
1 1 2 3
2 1 2 3
3 1 2 3
4 1 2 3
5 1 2 3



如何实现?
...全文
108 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanruinet 2005-05-30
  • 打赏
  • 举报
回复
没看出来……
你给的代码中用到e.Item.Index了吗?
你为什么说“那样不可以,因为他的数据库没有行号这个字段,所以datagrid控件没法指定keyfield这个字段,所以itemindex值没法直接获得”?
itflying 2005-05-30
  • 打赏
  • 举报
回复
我说的是
e.item.index,这个可以得到这行关键字的值....
fanruinet 2005-05-29
  • 打赏
  • 举报
回复
to itflying(it学习者):
听到你这么说我感到很抱歉。楼主的这个问题已经不是新问题了,但我自己就回答过n个类似的问题,因此答案早就总结出来了,我所需要做的只是找一下我以前的帖子,然后copy / paste,速度当然比你快了。
fanruinet 2005-05-29
  • 打赏
  • 举报
回复
to itflying(it学习者):
Container.ItemIndex is not a field in a database. It's only the index of the line. So you can use it even if you doesn't get data from a database.
itflying 2005-05-29
  • 打赏
  • 举报
回复
举报:


我就回复一贴的时间,上面的朋友就回复了一堆的代码,我怀疑倒分
fanruinet 2005-05-29
  • 打赏
  • 举报
回复
You're welcome!
And I have two stars now!
itflying 2005-05-29
  • 打赏
  • 举报
回复
晕倒,这么快就揭帖了,刚打开的时候还只回复一贴,等我把字打完,在发出,就已经揭帖:(



郁闷
itflying 2005-05-29
  • 打赏
  • 举报
回复
上面的兄弟,那样不可以,因为他的数据库没有行号这个字段,所以datagrid控件没法指定keyfield这个字段,所以itemindex值没法直接获得.

建议:
也可以先在数据库中,加字段行号,,然后用datagrid绑定,在用下面的模板
<asp:templatecolumn ... >
<itemtemplate>
td align="left"><a href="#" onclick='<%# DataBinder.Eval(container.dataitem,"id","javascript:window.open(""reply.aspx?id={0}"",""_blank"",""width=420 , height=510"");")%>'><font color="#3300FF"><%#container.dataitem("title")%></a></font></td>
</itemtemplate>
</asp:templatecolumn>
didibaba 2005-05-29
  • 打赏
  • 举报
回复
:)谢谢你!
fanruinet 2005-05-29
  • 打赏
  • 举报
回复
//第二种:
DataColumn workColumn = workTable.Columns.Add("ID", typeof(Int32));
workColumn.AutoIncrement = true;
workColumn.AutoIncrementSeed = 1;
workColumn.AutoIncrementStep = 1;

.............
DataGrid1.DataSource=workTable;
DataGrid1.DataBind();

//第三种:
//在page 类中方一个
private int RowCount =0;
//在datagrid的ItemDataBound里边这样放:
if(e.Item.ItemType == ListItemType.Header)
{
RowCount =0;
}
else if(e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternateItem)
{
RowCount ++;
e.Item.Cells[0].Text= RowCount.Tostring();
}
else if(e.Item.ItemType == ListItemType.Footer)
{
e.item.Cells[0].Text = "共"+ RowCount.ToString();
}

//第四种:
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int num = e.Item.ItemIndex + 1;
e.Item.Cells[0].Text = num.ToString();
}
}
fanruinet 2005-05-29
  • 打赏
  • 举报
回复
<asp:templatecolumn ... >
<itemtemplate>
<%# Container.ItemIndex + 1%>
</itemtemplate>
</asp:templatecolumn>

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧