淘客熙熙

主题:请教ASP.NET编程的大牛 (拜托转相关版面) -- 吴刚看你跳舞

共:💬24 🌺14 新:
全看树展主题 · 分页首页 上页
/ 2
下页 末页
家园 现在看懂了你的问题。看来是和ASP .NET有关

不过,不太明白在故事二里,为什么你不能让服务器在重新生成页面(第四步)之前判断该页内容已经发生变化了呢?

家园 对啊。按道理大部分情况下应该用数据库的 transaction的

可能要看用什么样的数据库。现在用 asp.net 做“小型”数据库应用的,大部分是用 access 作为后台数据库,大概没有 transcation 的功能吧。如果是用 sql server,就应该可以用 transaction 的控制。如果是用 mysql ,大部分情况下,大概也是不会有 trasaction 的控制可以用(取决于用什么类似的数据库)。

家园 还是不很明白

您Postback时,总得Save吧?Save时,查一下状态,状态不对时,可以给出相应的页面吧?用户从新刷新页面时,"回复讨论" 按钮就消失了。不觉得有什么问题啊。

难道我误解了问题?

家园 还没有到save那一步那

是我们根本就不知道这个“回复”的按钮是针对哪个帖子的。

家园 我就更糊涂了

我假设每个帖子都有一个ID(这个ID不是之前所说的GUID or TimeStamp,而是帖子的Primary Key),userB仅仅作修改吧,ID不会变吧?回复讨论怎么会找不到那个帖子呢?

家园 mysql看用什么engine

用innodb就支持transaction,MyIsam就没有,不过我想大多数人应该会图快使用MyIsam。要不然可以用SQL里的select ... for update或者lock table什么的

家园 这跟ASP.NET无关

管你PHP,ASP还是JAVA,在客户端存在的内容,如果服务器端被删除了,没有服务端去主动或者被动PUSH客户端,客户端永远不能知道服务器端发生了什么.

家园 看来很多人不熟.NET编程

我也就能说个大概

.NET的最大好处是微软封装了SERVER和CLIENT之间同步的细节。所以当你使用server side control即WebControl搭建Web page,而且page的AutoEventWireup="True"时,你就不用操心了。

大致做法如下:像西西河,你点“回复”按钮后生成一新页面用于写回复的内容。用WebControl作该页的提交按钮。当帖子的状态发生变化时(日本人的叫法:当周边有事时),在server端,重复一遍,在server端call

提交按钮.Enabled = False

.NET负责灰掉browser上的按钮。这样,回复帖就自然贴不上了。

家园 贴子是有ID的嘛,回复时检查一下这个ID还在不在,不在就返回错误
全看树展主题 · 分页首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河