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) {}里面?
[解决办法]
不是高手.
------解决方案--------------------
肯定是你后天的编辑事件的问题把,不过看你字段量也不是很少,推荐新建立一个编辑页面,重新获取数据进行编辑更新
[解决办法]
通过ObjectDataSource来连接数据集与DetailsView
试试看。
你好象在前台没有添加ObjectDataSource
[解决办法]
关注,我也碰到类似问题,用ObjectDataSource数据源可以进入编辑,但又有新问题,代码是少写了,灵活性降低,如果自定义字段显示,没显示的字段更新进数据库时变空值,又得专门针对该页面写更新方法,访问层和表示层耦合度高,失去了多层结构的意义