100分,问一个很困惑的问题。高手快来!!
使用DetailsView进行数据的绑定。数据源是Collection <T> 。
绑定代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//BrandBll.GetBrandByPrimaryKey的返回类型Collection <Brand>
DetailsView1.DataSource = BrandBll.GetBrandByPrimaryKey(Convert.ToInt32(Request.QueryString[ "BrandID "]));
DetailsView1.DataBind();
}
}
开始DetailsView的Mode是ReadOnly,数据显示都是正确的。点击 编辑,进入Edit模式。
提示错误:引发了未处理的事件ModeChanging.
然后添加ModeChanging事件的处理:
protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
DetailsView1.DefaultMode = e.NewMode;
DetailsView1.DataSource = BrandBll.GetBrandByPrimaryKey(Convert.ToInt32(Request.QueryString[ "BrandID "]));
DetailsView1.DataBind();
}
现在问题出现了,DetailsView1的模式还是ReadOnly。如果修改事件的处理,
protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
DetailsView1.DefaultMode = e.NewMode;
DetailsView1.DataBind();
}
则在点击编辑的时候,模式转变成编辑模式。但是数据全部都没有了。到底什么原因呢?
------解决方案--------------------Try This:
protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
{
DetailsView1.DefaultMode = e.NewMode;
DetailsView1.DataSource = BrandBll.GetBrandByPrimaryKey(Convert.ToInt32(Request.QueryString[ "BrandID "])); //设置数据源
DetailsView1.DataBind();
}
------解决方案--------------------关注下,不会使用 DetailsView :D
------解决方案--------------------是不是象datagrid一样即使是编辑模版也得设置和数据进行绑定
------解决方案--------------------2.0的这些控件用的都不熟..
------解决方案--------------------给出你的前台代码看看
------解决方案--------------------DetailsView1.DefaultMode = e.NewMode;
这个之后需要重新绑定一下数据
DetailsView1.DataSource = BrandBll.GetBrandByPrimaryKey(Convert.ToInt32(Request.QueryString[ "BrandID "]));
DetailsView1.DataBind();
------解决方案--------------------PageLoad事件里有没有初始化(比如清空DetailsView)的代码,如果有,那有没有放进if(!IsPostBack) {}里面?
------解决方案--------------------不是高手.
------解决方案--------------------