我有一个页面,用户可以在其中插入新记录。也就是说,有一个名为PartNum的字段出现两次,它们出现在DetailsView中的单独TemplateField中。
我希望第二次出现在用户输入第一次出现时自动填充。到目前为止,我的第一个代码背后是:
Protected Sub PartNumChange(ByVal sender As Object, e As System.EventArgs)
Dim str As String
str = Me.ToString()
Try
DetailsView1A.DataItem("PrimaryKey5") = str
Catch nre As NullReferenceException
End Try
End Sub
其中str指的是第一个获取值的文本框,“PrimaryKey5”是应该在用户输入时更新的文本。
不幸的是,似乎没有任何事情发生。我有AutoPostBack。第二个文本框是否也需要某种代码隐藏?
答案 0 :(得分:0)
虽然您没有指定,但是您提到的Postback表明这是一个Web应用程序,而不是客户端应用程序。您编写的代码是服务器端,这意味着它不在用户的浏览器中运行,并且只有在页面提交到服务器时才有机会运行(例如,如果单击按钮或导航链接) - 即使使用AutoPostBack,您也不会为每个按键刷新。虽然可能为文本框中的每个按键回发,但这会导致您的页面反复刷新,并且不会是一个不错的用户体验。
更有可能的是,如果您想在浏览器中使用此效果,则需要将其实现为Javascript的客户端位。该脚本可以在客户端的浏览器中运行而无需访问服务器,并且可以提供更好的体验。