在我的ASP.NET表单中回发(单击一个按钮)后,表单中的所有DataItem都为空。为什么?即使回发后也应该怎么做才能检索DataList的内容?
protected void buttonAddRecord_Click(object sender, EventArgs e)
{
foreach (DataListItem item in listFields.Items)
{
// item.DataItem == null WTF?
}
}
protected void Page_Load(object sender, EventArgs e)
{
BindFields();
}
private void BindFields()
{
object setting = MySettings.GetSetting();
if (!Null.IsNull(setting))
{
listFields.DataSource =
DataProvider.GetData(int.Parse(setting.ToString()));
listFields.DataBind();
}
listFields.Visible = listFields.Items.Count > 0;
emptyMessage.Visible = listFields.Items.Count == 0;
}
最佳答案
找到了我的答案here。
更准确地说,我使用了一个HiddenField在各个帖子之间存储一个ID,我从数据库请求数据,而不是试图从DataItem中获取它(不能在数据绑定(bind)事件之外使用)。
关于回发后,ASP.NET/DataList的DataItem为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3531531/