【发布时间】:2014-11-27 21:52:00
【问题描述】:
我有一个带有查询的文本框,用户可以加载和更改或不理会它。我有一个测试数据库,用户使用开发测试按钮将其发送到该数据库。结果以 XML 格式显示在另一个表单文本框中。
有没有办法检查用户在按下开发按钮后是否更改了文本框中的任何内容?我有另一个名为生产的按钮,如果返回给用户的结果是正确的,用户可以将此查询保存到生产数据库。
我要防止的是用户加载一个措辞正确的查询,对其进行测试,结果很好,然后用户更改了某些内容,无论是偶然还是故意使该查询不再有效,并将其提交给生产。到那时就会有错误,必须找到并改变事情。我想要一个小消息框,上面写着:“文本框在您测试后已更改,您确定要将其提交到生产环境”。现在他们仍然可以提交,但至少他们被警告了..
【问题讨论】:
-
什么样的文本框?窗体? WPF? ASP?
-
当结果从 dev 返回时,您不能只将查询保存到局部变量,然后将其用于生产吗?例如
button.Enabled = lastQuery == textbox.Text -
或者将上传到生产的按钮放在表示查询有效的消息上。
-
如果 javascript 可访问,您可以绑定 on("change") 并设置隐藏字段。如果它是winforms,那么事件可能同样适用。否则,只需将其内容的哈希存储起来,并在重新提交时重新哈希/比较。
-
将 bool 设置为 false|true,然后为 Text.Changed 附加一个事件句柄,如果 Text.Changed 发生,则标记该位,然后禁用将其保存到数据库直到它被验证。验证从测试数据库成功返回。允许人们开发测试查询然后如果它们没有失败,将它们保存到生产中,这似乎也是一个糟糕的设计。如果没有博学的眼光,任何东西都不应进入生产阶段。