[英]Binding the same data in GridView and DetailsView. Why am I not getting output for Details View?
[英]GridView not data binding on postback of DetailsView
我有同样的问题:
但是提供的答案对我不起作用,我想得到点创意,因为到目前为止,我已经浪费了3天的时间来尝试使GridView在DetailsView的回发中刷新。
情况是这样的:
我有一个GridView,当选择一行时,DetailsView将显示详细信息。 在。
单击编辑后,DetailsView进入“编辑”模式。
我对其进行编辑,然后单击“更新”按钮。
该更新会触发一个事件,并且它会正确更新我的SQL数据库表。
尽管有100篇文章说使用GridView1.Databind();但问题仍然存在。 在单击“取消”按钮之前,它不会刷新。
我知道它已发回,因为我已调试它并在Page_load(...)回发中看到了它。
我已经添加了
SqlDataSource1.DataBind();
和
GridView1.DataBind()
到以下位置,似乎都没有刷新GridView。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
...
}
else
{
SqlDataSource1.DataBind();
GridView1.DataBind();
}
}
也
protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
{
GridView1.DataBind();
}
也
protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
{
//GridView.SelectedIndex = -1;
SqlDataSource1.EnableCaching = false;
// UpdatePanel14.Update();
SqlDataSource1.DataBind();
GridView1.DataBind();
SqlDataSource1.EnableCaching = true;
// EndEditingGridView();
}
因此,正如您所看到的,我也尝试了在Details_View的Updating and Updated的Page_Load()下进行回发。 我也尝试过在GridView上设置“ ViewState = Disabled”。 除非我单击“取消”按钮,否则似乎无法使它更新其内容。 谢谢。
我从以前的工作中找到了答案,发现工作是删除Gridviews数据源,重置其索引并对其进行数据绑定。 然后更新UpdatePanel,然后重新连接gridview并再次对其进行数据绑定。
我的函数,在我的DetailsView1_ItemUpdated()事件末尾调用:
private void EndEditingDetailsView1()
{
GridView.DataSourceID = null;
GridView.EditIndex = -1;
GridView.DataBind();
DetailsUpdatePanel.DataBind();
DetailsUpdatePanel.Update();
GridView.DataSourceID = "SqlDataSource";
GridView.EditIndex = -1;
GridView.DataBind();
}
工作请客。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.