c# - .net c# postback 覆盖绑定(bind)的文本框

标签 c# .net gridview postback

我有一个 gridview,其内容由 accessdatasource 提供,显示的数据取决于具有回发事件的下拉列表

  • 页面加载
  • 用户从下拉列表中选择一个项目
  • 页面重新加载 gridview 中的新数据

到目前为止一切顺利

然后我在 GridView 中添加了一个文本框(不,我不能使用标准的“编辑”链接) 文本框在项目模板中

此文本框包含可编辑的数据,供用户更新并通过单击更新按钮发送回服务器。

问题是,如果我更改下拉列表中的选择,gridview 会更新,但文本框会保留旧值,即使它们与 <%# Bind("vr_total") %> 绑定(bind)也是如此

我只能假设这是由回发数据引起的,并且数据在绑定(bind)发生后被覆盖。 (否则绑定(bind)会覆盖旧的不需要的数据)

谁能解释一下我该如何改变这种行为。

View 状态设置为 false

我是 .net 和 c# 的新手

直流

进一步发展..

如果我将 "... > 网格将完全按预期工作。

问题似乎是 gridview 在绑定(bind)数据时填充其子控件,但即使其 View 状态被禁用,文本框也会用发布的内容覆盖它(通过下拉列表中的回发事件)。

最佳答案

克里斯, 控件具有所谓的 ControlState,您无法禁用它。您遇到的问题是您在页面加载中加载和绑定(bind),然后触发一个 Action 。

我们解决这个问题的方法是在 Page_Load 中加载数据并在 OnPreRender 中绑定(bind)数据。

例如:

private void Page_Load(object sender, System.EventArgs e)
{
  grid.DataSource = whatever;
}

// your dropdown event occurs between these two events

protected override void OnPreRender(EventArgs e)
{
   grid.DataBind();
}

要更好地了解 ASP.NET ViewState,请查看 http://msdn.microsoft.com/en-us/library/ms972976.aspx

关于c# - .net c# postback 覆盖绑定(bind)的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598325/

相关文章:

c# - 在 WCF Rest 端点中使用参数 "params string[]"

c# 分解长字符串的最佳方法

.net - ILMerge 忽略 bindingRedirect

c# - 如何在sqlDataSource的select参数中使用数据绑定(bind)?

c# - 获取 GridView 列标题文本 - 始终返回空白

c# - 使用 Max 的 NHibernate QueryOver 子集合

c# - 如何使用 BouncyCaSTLe 生成根证书,然后生成由该根证书签名的站点证书?

c# - Entity Framework 延迟加载 AsNoTracking()

.net - 在不同的模式中引用相同的表名

android - android gridview 中带有文本的图像