【问题标题】:Retrieve data from DataList从 DataList 中检索数据
【发布时间】:2009-12-07 06:37:03
【问题描述】:

这将是页面上的一个简单表格,其中有一些初始单元格,另一个用户应该输入。 我将 DataList 与 ItemTemplate 一起使用:

<ItemTemplate>
    <asp:TextBox ID="CellTextBox" runat="server" Text='<%# Bind("Cell") %>' />
</ItemTemplate>

在代码中我覆盖了这个控件的 DataBind():

public override void DataBind()
        {
            MyDataList.DataSource = dataTable;
            MyDataList.DataBind();
        }

现在不行了。用户输入一些单元格并单击提交按钮,但 dataTable(在处理此按钮 OnClick 事件的方法中)不包含用户的数据 - 仅包含初始数据。我该怎么办?

【问题讨论】:

  • 嗨,也许我错了,但如果你想显示绑定的值,不应该使用 Eval("Cell") 而不是 Bind("Cell")?

标签: asp.net datalist


【解决方案1】:

我不确定我是否完全理解,但我认为您可能遇到了问题,因为您需要在页面加载时检查回帖。你可能想尝试这样的事情:

public void Page_Load(Object sender, EventArgs e)
{
  if (!this.IsPostBack)
  {
    myDataList.DataSource = myManager.GetDataTable();
    myDataList.DataBind();
  }
}

这样,数据只会绑定到初始页面加载的控件,而不是后续的回发请求。 Page_Load 将在每个请求上调用,这意味着 Page_Load 中的代码将在您的按钮单击方法之前执行。因此,您需要检查页面上的 IsPostBack 属性以查看当前请求是否为回发。如果是,请不要将您的数据绑定到您的控件,因为您将丢失用户输入的内容。

【讨论】:

  • 对不起,我得到的信息太少了。有详细的
  • 我怀疑 ItemTemplate(不是 EditItemTemplate)中的控件是否可以使用#Bind 并可以检索用户输入的数据
  • 看起来是因为使用了会话/在调试模式下,表从会话状态中获取。但是我该怎么处理呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 2013-04-21
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-18
  • 1970-01-01
相关资源
最近更新 更多