【问题标题】:ASP.net, VS 2010, C# -- how to find a control on a different page?ASP.net、VS 2010、C#——如何在不同的页面上找到控件?
【发布时间】:2012-05-23 03:09:29
【问题描述】:

我在 Default.aspx 页面上有一个 FormView。我在 App_Code 文件夹中有 BLL_Census.cs 类。我想在 BLL_Census.cs 的默认页面上的 FormView 上设置文本框的属性,但不知道如何在 BLL_Census.cs 中参考在其他页面上查找 FormView。

【问题讨论】:

  • 那么...您需要将值存储在某处并从另一个页面访问它们?
  • 不完全——从 App_Code 中的一个类我想更改 Default.aspx 页面中 TextBox 的属性。
  • 在同一个请求中?如果是这样,您如何从页面调用该类的方法?你能发布一些代码吗?
  • 就是这种情况,这个链接可以帮助你。它适用于 WinForms,但适用相同的概念:stackoverflow.com/questions/10576856/…
  • ivowiblo:转到那个链接。能够让它为一个按钮工作——我在另一页上更改了 Button 的 .Text 属性。但是,我正在尝试更改 FormView 上的 TextBox 的属性。不知道如何让我的自定义类 BLL_Census.cs 看到 FormView1 上的 TextBox1。我尝试了以下方法,但它引发了 nullReference 错误——可能是因为我正在使用一个新的 TextBox 而不是 FormView1 本身的那个。

标签: c# asp.net formview findcontrol


【解决方案1】:

如果将 BLL_census.cs 中的值放入会话变量中并在浏览器中呈现其他页面时访问它会更容易

【讨论】:

  • 我知道如何使用会话状态来保存离散值。但我想在另一个页面上设置 TextBox 的属性。
【解决方案2】:

一个页面只有在浏览器调用它时才“存在” 所以不可能从当前页面访问另一个页面。 如果您需要共享页面区域,请使用页面控件 如果需要共享数据,请使用 Asp.NET Session

【讨论】:

  • 我知道如何使用会话状态来保存离散值。但我想在另一个页面上设置 TextBox 的属性。我不知道页面控件是什么,或者这是否会有所帮助——你能给我更多信息或给我指点什么吗?
  • 您将要设置的值存储在会话中,并在另一个页面中将代码放在 Page_Load 上以从会话中加载该值,并将其放入文本框中。
  • 哦...是的,我想到了这种方法。这就是我目前正在使用的——如果 App_Code 文件夹中的验证类发现问题,那么它会返回包含错误的 strError 字符串,然后调用页面会显示一个标签并将错误放在标签上。这是有效的。我还想突出显示有错误但不能直接从 App_Code 中的类设置文本框的属性的文本框。如果我必须从 Default.aspx.cs(调用页面)执行此操作,那么它将变得混乱——这是我试图避免的。
【解决方案3】:

您正在使用网站项目吗?尝试网络应用项目

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 2023-03-20
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多