可以在DataGrid绑定数据的事件里替换。

解决方案 »

  1.   

    比如Text='<%# asd(DataBinder.Eval(Container.DataItem,"ID"))%>'
    然后在后台.cs程序中加个asd()方法,把编号转换成姓名。
      

  2.   

    绑定DataGrid的时候在编号列
    <asp:TemplateColumn SortExpression="编号" HeaderText="编号">
    <ItemTemplate>
    <%# Get_Name(Int32.Parse((DataBinder.Eval(Container.DataItem,"编号").ToString()))) %>
    </ItemTemplate>
    </asp:TemplateColumn>代码里面写个函数就行了
    public string Get_Name(string ID)
    {
    }
      

  3.   

    esay
    ItemDataBound  事件 if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
    {
       if(i.Item.Cells[0].Text=="0")
           i.Item.Cells[0].Text="测试"
    .........................
    }
      

  4.   

    把你查询的sql语句改一下,如果人员的编号和姓名不在同一个表里面,
    select a.*,b.* from a,b where a.编号=b.编号然后把显示列的字段名称改一下,不知道符合符合你的情况不??
      

  5.   

    我赞成:shyox(阿牛) 的做法;但还是推荐你在绑定的sql语句中实现,效率要好些。
      

  6.   

    好象能够一起写sql的,以后我见过,我帮你找下。
      

  7.   

    绑定用:
     GetName(DataBinder.Eval(Container, "DataItem.student_no").ToString().Trim())下面的代码有一个问题,贴出来请大家帮忙看一下:
      public string GetName(string Number)
    {
    string DBName = ServiceData.GetDBNameByID(SchoolDL.SelectedValue.ToString().Trim());
    string strName = ServiceData.GetNameByNumber(Number,DBName);
    return Number;
    }
    上面的代码对于每一行编号传入一个Number,即:string strName = ServiceData.GetNameByNumber(Number,DBName);
    然后返回一个姓名,但是如果在ServiceData.GetNameByNumber(Number,DBName)函数里采用填充DataSet后再取得姓名,
    那么系统的资源耗费将不可想象。
      

  8.   

    public string GetNameByNumber(string Number,string DBName)
    {
    string strName;
    string strConn = ConfigurationSettings.AppSettings.Get("KTConnectionString").Trim();
    strConn = strConn.Replace("KTDBName",DBName);
    dsConn.ConnectionString = strConn;  if ( dsCommand == null )
    {
    throw new System.ObjectDisposedException( GetType().FullName );
    }            
    DataSet daStudentName = new DataSet();
    dsCommand.SelectCommand
    = new SqlCommand("select * from student_info where student_no = " + Number,dsConn);
    dsConn.Open(); 
    dsCommand.Fill(daStudentName);
    dsConn.Close();
    if(daStudentName.Tables[0].Rows.Count > 0)
    {
    strName = daStudentName.Tables[0].Rows[0]["name"].ToString().Trim(); 
    }
    else
    {
    strName = Number;
    }
        return strName;
    }
      

  9.   

    上面代码贴错了,应为:
    绑定用:
     GetName(DataBinder.Eval(Container, "DataItem.student_no").ToString().Trim())下面的代码有一个问题,贴出来请大家帮忙看一下:
      public string GetName(string Number)
    {
    string DBName = ServiceData.GetDBNameByID(SchoolDL.SelectedValue.ToString().Trim());
    string strName = ServiceData.GetNameByNumber(Number,DBName);
    return strName;
    }
    上面的代码对于每一行编号传入一个Number,即:string strName = ServiceData.GetNameByNumber(Number,DBName);
    然后返回一个姓名,但是如果在ServiceData.GetNameByNumber(Number,DBName)函数里采用填充DataSet后再取得姓名,
    那么系统的资源耗费将不可想象。