我使用asp:table / cell组合创建了一个动态矩阵显示。并添加了一个文本框,在每个单元格中显示一个值。在这一点上,我正在创建一个视图状态,它将完成整个表格。
现在,如果我更新文本框并单击“保存”,我将获得空表(因为回发),并且ViewState中的值也是陈旧的 - 它们不是更新的用户值。
有没有办法在每个文本框更改时创建视图状态。如何存储已编辑的文本框值?
答案 0 :(得分:0)
您不需要存储文本框值,因为它们都已准备好回发。
您只需要从帖子中阅读它们。
Request.Form[YourTextBox.UniqueID]
现在,如果您希望将它们保存在viewState上,您可以使用类似
的代码string YouData
{
set
{
ViewState["cYouData"] = value;
}
get
{
if (ViewState["cYouData"] != null)
return ViewState["cYouData"].ToString();
else
return string.Empty;
}
}
但这样做的唯一原因是要了解某些事情是否发生了变化,并找出某些事情是否发生了变化,一个简单的哈希就可以完成工作。
答案 1 :(得分:0)
检测PostBack并在那里重新加载值:
if (!Page.IsPostBack)
{
// initial load
}
else
{
// postback
}