以前的(10几年前的)一个 asp.net2.0 教程可以参考 http://jingpin.jikexueyuan.com/article/8281.html如果你要学习 asp.net 2.0(那个时候作者还不会 asp.net ajax的 UpdatePanel 等等呢),可以看这个教程。
当然现在已经很少使用这类服务器端复杂组件开发理念了。如果你一定要学习 asp.net 服务器端界面组件应用,可以从这个教程开始入门。
当你拖一个 button 测试控件到页面,然后让其处理回发事件(事件处理过程中可以什么都不做),那么用它测试页面就能判断当前应用系统设计是否懂得 asp.net 机制。因为这个 button 按钮其实什么都不做,所以页面回发刷新时就不会影响客户端看到的任何内容,GridView 中动态增加的行、动态改变的编辑状态等等,都不会丢失,会自动保持原来的状态。而且也绝对不会去查询后台数据库去重建什么控件。
现在你点击了“编辑”就丢失了数据,这说不过去了。如果这时候告诉你让你去“重新查询”这其实会是一个误导。先把 asp.net 的整体架构理解透了,可以保证不绕大圈子,从一开始就按照 asp.net 真正的机制来设计和测试。所以(传统asp.net程序)开发中每一步骤都应该用上述的我说的最基本的 button 测试来作为尺度,随时检验。
按照你的正规教程学习。网络上许多文章,并不是一个成熟的应用,许多都是“坑”。
我给你一个最基本的检验一个文章作者是否懂得 asp.net 编程的测试。就是,你可以直接拖一个 Button 控件到页面,双击它产生后台事件处理(你可以在这个事件处理过程中写调试语句,或者干脆就空着、什么都不做)。这就行了!然后你在调试 asp.net 代码运行时经常点击这个按钮,如果你看到页面上内容丢了、或者乱了、或者你测试到每一次页面回发都需要花费巨大代价重新查询数据库来创建页面内容,那么这个 asp.net 就是设计错误的。
你看看真正的 asp.net 教程上的例子,就算是一个复杂的 GridView 表单,在这种专门测试页面回发时,人家也不会去查询数据库去重建 GridView。因为 asp.net 机制是自动保存 GridView架构信息、数据信息,根本不用你去查询数据库并且重建。
那么当你学了错误的网络文章,你编写的程序,就会产生你这个帖子的这类问题。这时候你应该按照规范的教程去学习 asp.net 编程,自己比较一下、(用上述方法)测试一下记忆更深刻,你会发现这些文章有什么坑存在。