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

时间:2016-07-20 20:27:19

标签: c# asp.net drop-down-menu global-asax

我对C#和ASP.NET都很陌生,并且对以下查询提供建议和帮助。

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

    string blankCard = "";
    drpFirstHoleCard.Items.Add(blankCard);
    
  2. 此代码无效。我在drpFirstHoleCard声明

    下得到了一个红色的曲线
      

    名称' drpFirstHoleCard'在当前上下文中不存在

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

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

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

    编辑以下以响应Delosdos

    1. 我已经在我的等效page.aspx.cs

      中创建了一个方法

      void PopulateDropDownLists()
      {
        string blankCard ="";
        drpFirstHoleCard.Items.Add(blankCard); }

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

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

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

    5. 希望我已经解释得那么好了。如果您有任何疑问,请询问我。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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