我正在开发一个.net(C#)Web应用程序。
最近出现了一个缺陷,表明当两个用户同时登录到应用程序时,如果没有刷新页面,他们都无法更新值。当我研究这个问题时,我发现代码的作者使用了静态数据集。我将数据集更改为不是静态的,一切都很好。
但是,此问题涉及应用程序中的许多页面,我必须在任何地方修复它。在其中一些页面上,应用程序使用数据集将数据绑定到datagrids。 datagrids使用数据集中的信息填充,页脚包含一些文本框和添加按钮以添加额外的行。这是问题的开始:
当页面使用静态数据集并且用户试图通过界面添加行时,一切正常。但是,当我将其更改为使用非静态数据集(每次加载页面时都加载它们)并且用户尝试添加行时,代码认为文本框为空(即使我可以看到,也会在调试时发现我输入的文字)和空字段验证失败,并显示一条消息。
有人可以告诉我为什么地球上会发生这种情况吗?为什么在数据集是静态时(数据集NEVER填充脚行)看到文本,而在文本不是静态时看不到文本?一些见解会很棒!
提前致谢!
答案 0 :(得分:2)
原来,网格的绑定方式存在问题。
实例化数据集时发生了绑定。这意味着每次页面加载时,绑定再次发生并导致文本为空。考虑到item命令看起来像是在页面加载之前执行,这很奇怪,但数据网格还是不喜欢它。我移动了绑定发生的位置,这样它只在页面加载时发生一次(当然,当某些内容添加到网格时会发生)。
这似乎可以解决问题!