请问,如何在DataGrid中的第一列实现自动编号,但是,必须是按照倒序自动编号??急! 请问,如何在DataGrid中的第一列实现自动编号,但是,必须是按照倒序自动编号??急! 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在Datagrid html中加 <asp:TemplateColumn HeaderText="编号"> <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle> <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle"></ItemStyle> <ItemTemplate> <asp:Label runat="server" Text='vvv' ID="Label6" /> </ItemTemplate> </asp:TemplateColumn>在itemDataBound 事件中加入 public void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //生成编号 if ( e.Item.ItemIndex<0 ) return; Label tb = (Label)e.Item.FindControl("Label6"); int bh=DataGrid1.Items.Count-(DataGrid1.PageSize * DataGrid1.CurrentPageIndex + e.Item.ItemIndex + 1); tb.Text = bh.ToString(); } 好,coat()说的方法,还是不能实现自动倒序排列啊!请高手再帮我看看! 二、倒序的方法 序号 内容 4 Taye 3 BOx 2 Glass 1 StarCraft 由上面可以知道使用this.DataGrid1.Items.Count - Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1分页的情况下更是一样.所以一开始我们就要取得数据源的行数 .cs private int rowscount = 0; protected int RowsCount { get{ return rowscount;} set{ this.rowscount = value; } } private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!IsPostBack) this.BindData(); } private void BindData() { SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd="); string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID "; SqlDataAdapter sqlda = new SqlDataAdapter(str,cn); DataSet ds = new DataSet(); sqlda.Fill(ds); this.RowsCount = ds.Tables[0].Rows.Count; this.DataGrid1.DataSource = ds; this.DataGrid1.DataBind(); } .aspx <asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True"> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> C# asp.net 自定义菜单 如何实现 求生成缩略图的代码 求搜索引擎电子图书 更新ewebeditor里的内容出现的问题?新手问,附代码。 新手请教一个注册验证程序. 请问如果数据库与.net程序不在同一台服务器上,如何连接数据库? JavaScript跳转页问题 【散分速度只秒第一】 请教,网站所有上传全部放到同一个文件夹,有什么隐患,一般怎么处理上传文件夹比较好 大虾:救命啊,困了我3天了--在线 cookie删除后,怎么还可以读取? QQ讨论群:1803321,有兴趣的朋友可以加入!
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle"></HeaderStyle>
<ItemStyle HorizontalAlign="Right" VerticalAlign="Middle"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" Text='vvv' ID="Label6" />
</ItemTemplate>
</asp:TemplateColumn>
在itemDataBound 事件中加入
public void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{ //生成编号
if ( e.Item.ItemIndex<0 ) return;
Label tb = (Label)e.Item.FindControl("Label6");
int bh=DataGrid1.Items.Count-(DataGrid1.PageSize * DataGrid1.CurrentPageIndex + e.Item.ItemIndex + 1);
tb.Text = bh.ToString();
}
内容
4 Taye
3 BOx
2 Glass
1 StarCraft
由上面可以知道使用
this.DataGrid1.Items.Count - Container.ItemIndex + 1方法是不可能实现的,得到值而且全会为1
分页的情况下更是一样.所以一开始我们就要取得数据源的行数 .cs
private int rowscount = 0; protected int RowsCount { get{ return rowscount;} set{ this.rowscount = value; } } private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!IsPostBack) this.BindData(); } private void BindData() { SqlConnection cn = new SqlConnection("server=(local);database=NorthWind;uid=sa;pwd="); string str=@"SELECT Employees.EmployeeID, Orders.EmployeeID FROM Employees INNER JOIN Orders ON Employees.EmployeeID = Orders.EmployeeID "; SqlDataAdapter sqlda = new SqlDataAdapter(str,cn); DataSet ds = new DataSet(); sqlda.Fill(ds); this.RowsCount = ds.Tables[0].Rows.Count; this.DataGrid1.DataSource = ds; this.DataGrid1.DataBind(); }
.aspx
<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True"> <Columns> <asp:TemplateColumn> <ItemTemplate> <%# RowsCount - DataGrid1.CurrentPageIndex * DataGrid1.PageSize - Container.ItemIndex %> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid>