要清除流量:
您需要创建将是只用于从数据库获取数据或更新数据
public class PhotoAccess
{
public class PhotoInfo
{
public int PhotoID {get; set;}
public string FileName {get; set;}
}
public IEnumerable<PhotoInfo> GetPhotos()
{
using (var dbCon = new lnqPhotoDataContext())
{
var res = from p in dbCon.Photos
orderby p.PhotoID descending
select new PhotoInfo
{
p.PhotoID,
p.FileName
};
return res.AsEnumerable();
}
}
public bool UpdateSave(...)
{
... code to do update or save, use here only classes for working with the DB
}
}
在后面的代码
然后,类
页
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var dataAccess = new PhotoAccess();
var items = dataAccess.GetPhotos();
lvSubAlbumDB.DataSource = items;
lvSubAlbumDB.DataBind();
}
}
protected void btSave_OnClick(object sender, EventArgs e)
{
var dataAccess = new PhotoAccess();
dataAccess.UpdateSave(...pass here the parameters or an object which is going to be inserted);
var items = dataAccess.GetPhotos();
lvSubAlbumDB.DataSource = items;
lvSubAlbumDB.DataBind();
}
您也可以重构绑定代码到Page类的另一种方法
private void BindAlbum()
{
var dataAccess = new PhotoAccess();
var items = dataAccess.GetPhotos();
lvSubAlbumDB.DataSource = items;
lvSubAlbumDB.DataBind();
}
而且页面加载是:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindAlbum();
}
}
和更新处理
protected void btSave_OnClick(object sender, EventArgs e)
{
var dataAccess = new PhotoAccess();
dataAccess.UpdateSave(...pass here the parameters or an object which is going to be inserted);
BindAlbum();
}
什么是'Process'和'PhotoDatabinding'是在类之间的关系?这个类是否创建了一个'Process'的实例,或者创建一个创建它的类? – Servy 2012-04-25 14:46:34
通常,您的页面将使用Process类,而不是其他方式。您正在按层之间的错误方向拨打电话。 – 2012-04-25 14:47:40
我同意大卫这是错误的方向调用。 – Ravia 2012-04-25 14:56:32