主要后台代码如下:
namespace NewDIY
{
/// <summary>
/// datagrid1 的摘要说明。
/// </summary>
public class datagrid1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid2;

private void Page_Load(object sender, System.EventArgs e {
if (!IsPostBack)
{
this.mybind();
}
}

private void mybind()
{
OleDbConnection conn=new OleDbConnection(ConfigurationSettings.AppSettings["connStr"].ToString());
OleDbDataAdapter da=new OleDbDataAdapter("select * from 企业明细表",conn);
DataSet ds=new DataSet();
try
{
da.Fill(ds,"企业明细表");
DataGrid2.DataSource = ds.Tables["企业明细表"];
DataGrid2.DataKeyField="ID";
DataGrid2.DataBind();
}
catch(Exception error)
{
Response.Write(error.ToString());
}
}
private void DataGrid2_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.DataSetIndex !=-1)
{
int orderID = e.Item.ItemIndex+1;
e.Item.Cells[0].Text=orderID.ToString();
}
}
}
}
主要html代码:
<%@ Page language="c#" Codebehind="datagrid1.aspx.cs" AutoEventWireup="false" Inherits="NewDIY.datagrid1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>datagrid1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:datagrid id="DataGrid2" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 56px" runat="server"
Width="512px" Height="20px" CellPadding="4" ToolTip="第一列为添加的自动标识列" BorderColor="#3366CC" ShowFooter="True"
AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn HeaderText="序号"></asp:BoundColumn>
<asp:BoundColumn DataField="企业名称" HeaderText="企业名称"></asp:BoundColumn>
<asp:BoundColumn DataField="法人代表" HeaderText="法人代表"></asp:BoundColumn>
<asp:BoundColumn DataField="所有制性质" HeaderText="所有制性质"></asp:BoundColumn>
<asp:BoundColumn DataField="注册资产" HeaderText="注册资产"></asp:BoundColumn>
</Columns>
</asp:datagrid></FONT></form>
</body>
</HTML>
主要问题如下:
    浏览器页面没有任何显示,加载数据语句好像根本没有起作用。如果不添加DataGrid2_ItemDataBound事件就可以显示出datagrid控件,并且可以显示出相应数据,但是“序号”列没有显示序号。这是为什么?

解决方案 »

  1.   

    private void DataGrid2_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemIndex!=-1)
    { e.Item.Cells[0].Text=e.Item.ItemIndex+1;
    }
    }
    }
    }
      

  2.   

    不行呀,ie浏览器中还是空白的什么都没有,到底是为什么添加了DataGrid2_ItemDataBound事件就不能显示东西了?连datagrid控件都见不到!!!
      

  3.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=C0B53A2D-EF45-4E07-9C95-2849700F32A8
      

  4.   

    1.不分页自动添加序号
    <asp:TemplateColumn>
    <ItemTemplate>
    <%# Container.ItemIndex + 1%>
    </ItemTemplate>
    2.分页自动添加序号
    <ItemTemplate>
    <%# this.DataGrid1.CurrentPageIndex * this.DataGrid1.PageSize + Container.ItemIndex + 1%>
    </ItemTemplate>
      

  5.   

    控件绑定之后,立即执行如下代码
    for(int i=0;i<this.datagrid1.Items.Count;i++) 
    {
    this.datagrid1.Items[i].Cells[0].Text = i+1; 
    }