2013-06-28 144 views
0

我有一個頁面,用戶可以將新記錄插入表中。即,有一個名爲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

儘管您沒有指定,但您提到的Postback表明這是一個Web應用程序而非客戶端應用程序。你寫的代碼是服務器端的,這意味着它沒有在用戶的瀏覽器中運行,並且只有在頁面被提交給服務器時纔有機會運行(例如,如果單擊按鈕或鏈接導航) - 即使使用AutoPostBack,你也不會爲每次按鍵刷新。雖然它是可能回發一個文本框中的每個按鍵,這將導致您的頁面重複刷新,並不會是一個不錯的用戶體驗。

更有可能的是,如果您希望在瀏覽器中使用此效果,您希望將其實現爲Javascript的客戶端位。該腳本可以在客戶端的瀏覽器中運行,而不會碰到服務器,並且會提供更好的體驗。

+0

謝謝,這是一個非常有見地的答案。 但讓我們現在說,我只想第二個更新,當第一個失去焦點(就像我點擊離開它)。這段代碼似乎仍然不起作用。那裏有任何想法?再次感謝! – user2516794

相關問題