是否可以更新嵌入在表单中的标签

本文关键字:表单 标签 更新 是否 | 更新日期: 2023-09-27 18:13:10

我想我已经根据我自己的模拟和测试有了这个问题的答案,但我非常想这样做,这对我的页面非常有用,我想让它工作,我将把它扔在这里给你们其他人,看看是否有人想出了一种实用的方法来完成我未能做到的事情到目前为止,找到一种方法。

场景:
采取数据驱动的<asp:FormView>,当然,您有数据元素,您可以在表单中操作这些元素,以根据您在表单中的意愿进行定位。

现在我所做的是选择添加一个静态 DDL,我可以从中收集值并更改 FormView 中其中一个字段的值。这很好用。

为了画龙点滴,我想添加的是添加一个<asp:Label>(不是由数据源生成的(,并根据下拉列表中选择的值更改该标签。 即。 这将是所选值的叙述。

问题:
我发现,我不能像处理数据源创建的<asp:Label>那样处理插入到 FormView 中的。这有点让我感到惊讶,因为我可以解决 DDL 并从中提取值,但我似乎无法将文本值写入我在<FormView>中创建的<asp:Label>

它真的没有多大帮助,但这是我认为应该工作但没有工作的代码:

// This line pulls the value that I want to place in the label
Label astylbl = (Label)GetAssetTypeFV.Row.FindControl("AssetTypeLabel");
// This sequence should be setting the value collect above into the label 
// NOTE! That the Label has been prepopulated with data to make sure it isn't 
Label ATTL = (Label)GetAssetTypeFV.Row.FindControl("AssetTypeTextLabel");
  if (ATTL != null)
      ATTL.Text = astylbl.Text;

现在这根本不可能还是我在这里错过了什么?

是否可以更新嵌入在表单中的标签

如果你想

在客户端分配标签(没有表单验证(,你应该使用你正在使用的任何客户端脚本(javascript,jquery等(来完成。

否则,您需要通过在目标 DDL 控件上设置 AutoPostBack="True" 来回发 DDL 并在 OnSelectedIndexChanged 事件上处理它。

编辑:如果要在服务器端处理它,而不是重新加载页面,则必须通过在代码隐藏中创建[WebMethod]函数并使用 AJAX 调用它来实现。

更正后的代码如下所示:

Label astylbl = (Label)GetAssetTypeFV.Row.FindControl("AssetTypeLabel");
Label ATTL = (Label)ChangeFormFV.Row.FindControl("AssetTypeTextLabel");
  if (ATTL != null)
      ATTL.Text = astylbl.Text;

现在一切都好了!