这将是页面上的一个简单表格,其中包含一些初始单元格,另一个用户应该输入。 我将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事件的方法中)不包含用户的数据 - 只是初始化。我该怎么办?
答案 0 :(得分:0)
我不确定我完全理解,但我认为您可能遇到问题,因为您需要检查页面加载上的帖子。您可能想尝试这样的事情:
public void Page_Load(Object sender, EventArgs e)
{
if (!this.IsPostBack)
{
myDataList.DataSource = myManager.GetDataTable();
myDataList.DataBind();
}
}
这样,数据将仅绑定到初始页面加载的控件而不是后续的回发请求。将在每个请求上调用Page_ Load,这意味着Page_Load中的代码将在按钮单击方法之前执行。因此,您需要检查页面上的IsPostBack属性,以查看当前请求是否为回发。如果是,则不要将数据绑定到您的控件,因为您将丢失用户输入的内容。