如何使 Global.asax 引用在 aspx 中声明的下拉列表?

How do I make Global.asax refer to a drop down list declared in an aspx?

我是 C# 和 ASP.NET 的新手,非常感谢您对以下查询的建议和帮助。

  1. 我创建了 Global.asax 并且在 Application_Start 中添加了以下代码以将 blankCard 字符串添加到 drpFirstHoleCard 下拉列表中列表。我使用 Application_Start 是因为我希望下拉列表在用户打开页面时第一个也是唯一一个实例中被填充。

    string blankCard = "";
    drpFirstHoleCard.Items.Add(blankCard);
    
  2. 此代码无效。我在 drpFirstHoleCard 下看到一条红色波浪线,说明

    The name 'drpFirstHoleCard' does not exist in the current context

  3. drpFirstHoleCard 下拉列表在另一个名为 PokerCalc.aspx 的页面中声明。

  4. 如何使 Global.asax 能够引用 drpFirstHoleCard(将字符串添加到下拉列表中)?

提前感谢您提供的任何帮助!

编辑下方以回应 Delosdos

  1. 我创建了一个等同于 page.aspx.cs 的方法。

    void PopulateDropDownLists()
    {
    字符串 blankCard = "";
    drpFirstHoleCard.Items.Add(空白卡); }

  2. 然后我在 protected void Page_Load(Object sender, EventArgs e) 下添加了这个方法。问题是当用户在下拉列表中选择某项时,方法是 运行 并且将另一个项目添加到下拉列表中。我只希望下拉列表在开始时填充一次。这就是我开始阅读 Application_Start.

  3. 的原因
  4. 下拉列表的用途是更改文本框的文本。这就是为什么我将 autopostback 属性添加到下拉列表中的原因。因此,用户在下拉列表中选择一个项目,服务器通过更改文本框的文本来更新页面。

  5. 然而,当用户选择一个项目时,Page_Load 然后 运行s 和方法被调用,将另一个项目添加到下拉列表中。我想避免这部分发生。

希望我已经解释得够清楚了。如果您有任何疑问,请问我。

Global.asax 不适合这样做。您应该在您正在处理的页面的后台代码中执行此操作,例如page.aspx.cs

不要为此使用 Global.asax。您应该将此代码放在您正在使用的 .aspx 页面的代码后面。你可以这样做

protected void Page_Load(object sender, EventArgs e)
    {
            if (!Page.IsPostBack)
            {
              string blankCard = "";
              drpFirstHoleCard.Items.Add(blankCard);
            }
    }