这是对ASP.Net: GridView control and combobox woes
的跟进我已经实现了我的代码,因为kd7已经回答了但是我得到了一个“System.NullReferenceException:对象引用未设置为对象的实例。”我将代码简化如下:
按钮点击的事件处理程序:
protected void btnSubmit_Click(object sender, EventArgs e)
{
ViewState["MyKey"] = "Test";
}
Page_Load现在有:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
txtDisplay.Text = ViewState["MyKey"].ToString();
}
}
我的问题是:为什么ViewState [“MyKey”]会返回null并导致NullReference异常?
请注意,上面的代码只是我正在尝试的简化版本。请参阅此问题第一行中的上一个问题以查看完整详细信息。
有什么建议吗?
答案 0 :(得分:1)
因为在asp页面生命周期中,在执行回发事件之前调用了页面加载。
怎么样: -
protected void btnSubmit_Click(object sender, EventArgs e)
{
txtDisplay.Text = "Test";
}
答案 1 :(得分:0)
NullReferenceException可能与您在设置之前尝试获取ViewState [“MyKey”]值的事实有关。首先尝试验证:
if (ViewState["MyKey"] != null)
{
txtDisplay.Text = ViewState["MyKey"].ToString();
}
else
{
//manage the situation accordingly
}
希望这有帮助!