Вы уверены, что ваш друг не использует свойство DataSourceID?
В этом отличие от MSDN:
Когда установлено свойство DataSourceID (вместо свойства DataSource)элемент управления с привязкой к данным автоматически связывается с элементом управления источником данных во время выполнения.
Пожалуйста, ознакомьтесь с этой статьей и с этой.
Надеюсь, это помогло.
Я нашел время, чтобы сделать небольшой пример, чтобы продемонстрировать, что вам нужно вызывать DataBind () для обычного вида сетки asp.net для визуализации его данных.*
Если ваш друг не вызывает этого, я предполагаю, что он связывает сетку с источником данных в коде .aspx (с источником данных SQLD, даже с объектом ObjectDataSource), и он изменяет этот источник данных в коде.
Пожалуйста, взгляните на следующий пример:
Страница default.aspx:
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="GridViewDemo._Default" %>
<form id="form1" runat="server">
<asp:gridview id="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="ID" />
<asp:BoundField DataField="Name" />
</Columns>
</asp:gridview>
</form>
Код для страницы: (это на C #, но я думаю,это относится и к VB)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GridViewDemo
{
public partial class _Default : System.Web.UI.Page
{
public class Entity
{
public int ID { get; set; }
public string Name { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
List<Entity> source = new List<Entity>() { new Entity() { ID = 1, Name = "First" }, new Entity() { ID = 2, Name = "Second" } };
GridView1.DataSource = source;
GridView1.DataBind();
// if you comment this line and run, the gridview is not rendered
}
}
}
Дайте мне знать, если это ответило на ваш вопрос.