2016-07-20 36 views
2

我對C#和ASP.NET很陌生,並會感謝以下查詢的建議和幫助。如何讓Global.asax引用在aspx中聲明的下拉列表?

  1. 我創建Global.asax和內Application_Start,我已經添加以下代碼到bl​​ankCard字符串添加到該drpFirstHoleCard下拉列表。我使用的是Application_Start,因爲我希望在用戶打開頁面時將下拉列表填充到第一個和唯一的實例中。

    string blankCard = ""; 
    drpFirstHoleCard.Items.Add(blankCard); 
    
  2. 此代碼無效。我得到drpFirstHoleCard下一個紅色的波浪線,說明

    名稱「drpFirstHoleCard」在目前情況下

  3. drpFirstHoleCard下拉列表是在一個名爲PokerCalc.aspx另一個頁面中聲明不存在。

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

預先感謝您提供的任何幫助!下面

編輯迴應Delosdos

  1. 我已經在我的等值page.aspx.cs創建的方法。

    空隙PopulateDropDownLists()
    {
    串blankCard = 「」;
    drpFirstHoleCard.Items.Add(blankCard); }

  2. 我已經在protected void Page_Load(Object sender, EventArgs e)下加了這個方法。問題是,當用戶選擇下拉列表中的某些內容時,該方法將運行並且另一個項目將添加到下拉列表中。我只想讓下拉列表在開始時填充一次。這就是爲什麼我開始閱讀Application_Start

  3. 下拉列表的目的是更改文本框的文本。這就是爲什麼我將autopostback屬性添加到下拉列表中。因此,用戶在下拉列表中選擇一個項目,服務器通過更改文本框的文本更新頁面。

  4. 但是,當用戶選擇一個項目時,Page_Load會運行,並調用該方法將其他項目添加到下拉列表中。我想避免這部分發生。

希望我解釋得很好。請問我是否有任何疑問。

+0

你肯定不想將Web控制添加到Global.asax文件 –

回答

0

不要爲此使用Global.asax。您應該將此代碼放在您使用的.aspx頁面的代碼後面。你可以做這樣的事情

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

我完全按照你的建議完成了,但是我在if語句中調用了一個方法。此方法然後將這些項目添加到下拉列表中。 非常感謝您的幫助!我一直試圖解決這個問題,我自己幾個小時一直在房子周圍! –

+0

很高興我能幫忙! – Justin

0

Global.asax不是正確的做法。你應該在你正在處理的頁面後面的代碼中執行,例如page.aspx。cs

+0

感謝您的建議。賈斯汀和傑克馬爾凱蒂也同意你的看法。 –

相關問題