0

这将是页面上的一个简单表格,其中有一些初始单元格,另一个用户应该输入。我将 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 事件的方法中)不包含用户的数据 - 仅包含初始数据。我应该怎么办?

4

1 回答 1

0

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

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

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

于 2009-12-06T22:13:41.380 回答