我有一个带有记录编号的表格,然后是“主要”注释和生效日期的框。
然后我有一个可选的“辅助”备注和生效日期框。
当有人点击按钮编辑主要或次要注释时,它会查看其他注释是否已更改(会话变量设置为“true”为其他文本框的“textchanged”事件触发)。如果是这样,它不会启用与“编辑”按钮匹配的文本框,而是闪烁一条消息,说明要取消或更新其他文本框的更改。
我的问题是,当没有任何更改时,文本框的内容被视为“已更改”。如果我加载记录并运行单独的验证检查,它会验证文本框的内容是否与最初加载到文本框中的数据匹配。然后,当我点击“编辑”按钮时,没有改变任何东西,即使会话变量和文本框中的信息都没有改变,单独的验证也会回来,因为不再匹配。
这是我的验证检查 -
If Not Session("SN1") Is Nothing Then
sesslst = sesslst & "<p>Sec Notes match = " & (Trim(Session.Item("SN1").ToString) = Trim(txtSecondaryNotes.Text)).ToString
sesslst = sesslst & "<p>Sec Date match = " & (Trim(Session.Item("SD1").ToString) = Trim(txtSecEffDate.Text)).ToString
sesslst = sesslst & "<p>S = " & Trim(Session.Item("SN1").ToString)
sesslst = sesslst & "<p>F = " & Trim(txtSecondaryNotes.Text)
End If
lblTest.Text = sesslst
以下是初始记录加载后的结果:
SN1 - 比尔史密斯(父亲)19/12年12月琳达史密斯(母亲)1971年7月22日Boudreau W史密斯(兄弟)4/7/1994
SD1 - 4/1/2014 12:00:00 AM
Sec Notes match = True
秒日期匹配=真
<=> S =比尔史密斯(父亲)19/12年12月琳达史密斯(母亲)1971年7月22日 Boudreau W Smith(兄弟)6/7/1994F =比尔史密斯(父亲)19/12年12月19日琳达史密斯(母亲)1971年7月22日 Boudreau W Smith(兄弟)6/7/1994
(此示例中的所有特定数据都已更改,因此未显示任何真实的个人信息)
当我单击编辑按钮并再次运行验证循环时,“Sec Notes changed”值将更改为“false”,但没有其他更改。
最初,我有“TextChanged”事件的记录更改集的会话变量。当它保持设置时,尽管没有变化,我在更改事件中添加了额外的验证。如果notes和dates会话变量都与字段信息不匹配,则会将另一个会话变量设置为已更改 -
Protected Sub txtSecondaryNotes_TextChanged(sender As Object, e As EventArgs) Handles txtSecondaryNotes.TextChanged, txtSecEffDate.TextChanged
If Not ((Trim(Session.Item("SN1").ToString) = Trim(txtSecondaryNotes.Text)) And (Trim(Session.Item("SD1").ToString) = Trim(txtSecEffDate.Text))) Then
Session.Item("secondaryEditing") = True
End If
End Sub
当我单击编辑按钮时,我从未通过检查“secondaryEditing”会话变量(lstSess()proc只列出所有会话变量名称和值,以便我可以看到正在比较的内容) -
Protected Sub btnEditPrimary_Click(sender As Object, e As EventArgs) Handles btnEditPrimary.Click
txtPolicy.Text = Trim(txtPolicy.Text).ToUpper
lstSess()
If Session.Item("secondaryEditing") = True Then
secMsg.Visible = True
Exit Sub
Else
secMsg.Visible = False
End If
所以,我认为最初的问题可能是表单,数据加载和TextChanged事件触发但在按下按钮之前没有被评估,但即使我添加了额外的If - &gt;然后在事件中进行验证,它仍然认为某些事情发生了变化,甚至没有启用该字段中的数据,更不用说操纵了。
如何才能真实地评估该字段中的文本是否已更改?仅供参考 - 使用和不使用“AutoPostBack ='true'”设置asp:TextBox对象,它的运行方式没有区别。
答案 0 :(得分:0)
拯救你的努力,伙计们。原始程序员没有导入所有必需的System和System.Web类。