看了好几个数据绑定控件开发例子。大同小异。 但是均有一点点我看不懂的地方datasource状态保存:看了下这个属性,里面是没有直接提供viewState的保存。于是想,这些数据是不是分别保存到模板容器里的一个属性里面了。里面与datasource数据有关的几行代码如下(不完整):相信看过数据绑定控件开发的人都知道啥意思。1.CreateControlHierarchy方法中 
if (useDataSource == false)
            {
                // ViewState must have a non-null value for ItemCount because this is checked 
                //  by CreateChildControls.
                count = (int)ViewState["ItemCount"];
                if (count != -1)
                {
                    dataSource = new DummyDataSource(count);
                }
            }这里面创建控件时对它的调用,如果是回发怎么取的是一些空值,DummyDataSource仅仅是实现IEnumerable特性,返回空的object,这又怎么能进行视图恢复?
2.CreateItemd 方法中if (itemTemplate != null)
            {
                itemTemplate.InstantiateIn(item.Cells[0]);
            }
            if (dataBind)
            {
                item.DataItem = dataItem;
            }
            //注意事件触发顺序
            OnItemCreated(e);
            table.Rows.Add(item);            if (dataBind)
            {
                item.DataBind();
                OnItemDataBound(e);                item.DataItem = null;
            }            return item;
由上面的问题,从而将疑惑转至模板加载这里。如果是DataBing()的调用还好说,item.DataItem = dataItem;item.DataBind();这两行代码即可实现绑定数据。如果是回发,这两行代码则不会调用,仅仅是 itemTemplate.InstantiateIn(item.Cells[0]);接着就是  table.Rows.Add(item);难道那些数据已经成为item中的子控件的属性值了么?实在是搞不懂了,往大家赐教。不胜感激!