【发布时间】:2016-12-13 20:49:11
【问题描述】:
由于我是 ASP .NET 的新手,我想知道这是正常行为还是奇怪的事情。我正在尝试将 C# WinForms 应用程序转换为 Web 应用程序,但它的行为与我预期的不同。
在桌面应用程序中,用户在文本框上按 Enter 后,我会获取数据。数据已加载,我可以对其进行修改,然后,当我完成数据更改后,我可以按两个按钮之一,并将数据保存到数据库或清除表单。像这样的。
private int idOrder;
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if(load_data)
{
label1.Text = "some loaded data";
...
else{ MessageBox.Show("Something went wrong. No data loaded");
}
}
protected void Button2_Click(object sender, EventArgs e)
{
//save to database;
}
但是当我尝试在 ASP.NET Web 表单中执行相同操作时,每当我在文本框上按 Enter 键时,都会在刷新页面时触发所有控件(因为它是在源代码中逐行编写的)。您能否建议我们如何复制与 winforms 中相同的行为,例如用户输入 - 输入 - 加载数据 - 修改 - 需要时按下按钮。谢谢你。
//视图状态是我要找的东西吗?
【问题讨论】:
-
查看 ispostback。另外,请包含不起作用的示例代码。
-
这是一个关于 ASP.Net 页面生命周期的有用的 MSDN 页面。 msdn.microsoft.com/en-us/library/ms178472.aspx 正如@Trey 所说,使用
if(!Page.isPostBack)回发不应执行的周围代码可能会有所帮助,但我不确定问题到底出在哪里。 -
您不能在 ASP.NET 中使用 MessageBox 类。这是特定于 Windows 窗体的。
-
分享你的代码
-
也感谢您的回复。我确实必须阅读更多关于此的内容。我会的。