日期:2014-05-18  浏览次数:20461 次

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) {}里面?
------解决方案--------------------
不是高手.
------解决方案--------------------