【问题标题】:How to access asp object如何访问asp对象
【发布时间】:2012-04-26 10:56:35
【问题描述】:

我想知道是否有办法在后面的代码中访问 asp 对象,但不使用对象本身?

假设我有一个asp页面,其中我有这个标签:

<asp:TextBox ID="test" runat="server"></asp:TextBox>

在我后面的代码中,我可以使用 this.test 访问这个对象。但我想以其他方式访问它。类似的东西:

 this.Objects["test"]

因为我正在解析一个包含所有 asp 对象的 xml 文档,然后我想对其进行一些处理(将 Visible 设置为 true ...)

你有什么想法吗?

谢谢

找到了答案。我正在使用 SharePoint,所以我必须设置上下文。我做不到

this.FindControls

所以我补充了:

Control context = this.Page.Master.FindControl("PlaceHolderMain");

我使用:

context.FindControl();

【问题讨论】:

  • 您应该将带有问题答案的文本移动到自己的答案中。那么你应该在 2 天的限制之后接受你自己的答案。这是标准做法。
  • 是的,我知道,但接下来的六个小时我无法回答自己……
  • 抱歉,我不知道声誉 meta.stackexchange.com/questions/86185/…) 的用户的 8 小时限制。

标签: c# asp.net sharepoint-2010 tags


【解决方案1】:

你可以使用:

this.Controls["control"];

【讨论】:

  • 哎,不行,用Controls[]的时候得用int index
【解决方案2】:
 ((TextBox) this.FindControl("test")).Visible = true;

【讨论】:

  • 如果您的文本框位于另一个控件中,则必须使用该控件的 Findcontrol 方法。在页面 lavel 上,文本框无法被 id "test" 识别。
【解决方案3】:

当您处理服务器端控件时,您可以使用 Page.FindControl(controlName) 访问它们:

this.Page.FindControl("txtPageSam").Visible = false;

【讨论】:

  • 事实上它不起作用。它返回 null 可能是因为我正在使用 Multiview 吗?
猜你喜欢
  • 1970-01-01
  • 2018-04-03
  • 2020-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
  • 2021-11-07
相关资源
最近更新 更多