在我的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/

10-11 17:58