我对C#和ASP.NET都很陌生,并且对以下查询提供建议和帮助。
我已创建Global.asax
,并且在Application_Start
内,我添加了以下代码,将blankCard字符串添加到drpFirstHoleCard
下拉列表中名单。我使用Application_Start
,因为我希望在用户打开页面时,在第一个也是唯一的实例中填充下拉列表。
string blankCard = "";
drpFirstHoleCard.Items.Add(blankCard);
此代码无效。我在drpFirstHoleCard声明
下得到了一个红色的曲线名称' drpFirstHoleCard'在当前上下文中不存在
drpFirstHoleCard
下拉列表在另一个名为PokerCalc.aspx
的页面中声明。
如何让Global.asax
能够引用drpFirstHoleCard
(将字符串添加到下拉列表中)?
提前感谢您提供的任何帮助!
编辑以下以响应Delosdos
我已经在我的等效page.aspx.cs
。
void PopulateDropDownLists()
{
string blankCard ="";
drpFirstHoleCard.Items.Add(blankCard);
}
然后我在protected void Page_Load(Object sender, EventArgs e)
下添加了此方法。问题是当用户在下拉列表中选择某些内容时,该方法将运行,另一项将添加到下拉列表中。我只希望下拉列表在开始时填充一次。这就是我开始阅读Application_Start
的原因。
下拉列表的目的是更改文本框的文本。这就是为什么我已将autopostback属性添加到下拉列表中的原因。因此,用户选择下拉列表中的项目,服务器通过更改文本框的文本来更新页面。
然而,当用户选择一个项目时,Page_Load然后运行并调用该方法,该方法将另一个项目添加到下拉列表中。我想避免这一部分发生。
希望我已经解释得那么好了。如果您有任何疑问,请询问我。
答案 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);
}
}