想要根据第二个文本框的值设置文本框的值

问题描述:

我有一个可以留空或包含日期的文本框。如果文本框有一个日期,我希望第二个文本框的值设置为会话变量的值。我需要这种情况发生在更新sql回发之前。想要根据第二个文本框的值设置文本框的值

这是我的代码。但是文本框没有任何回应。它是否有价值。

If IsPostBack Then 
     Dim Dev_Doc_Date As TextBox 
     Dev_Doc_Date = FindControl("Dev_Document_Date") 

     If Not Dev_Doc_Date Is Nothing Then 
      Dim Dev_Doc_Date_Value As String 
      If Not String.IsNullOrEmpty(Dev_Doc_Date.Text) Then 
       Dev_Doc_Date_Value = Dev_Doc_Date.Text 
      Else 
       Dev_Doc_Date_Value = String.Empty 

      End If 
     End If 
End If 
+1

您确定您的控件名为“Dev_Document_Date”,并且它不在母版页中吗?如果它在母版页中,则您的控件ID可能带有'ctrl00 $ ...'之类的前缀。 – 2010-08-20 11:53:02

+0

是的,我确定它被命名为“Dev_Doc_Date”,它不在母版页上。我知道我正确地引用它,因为当我调用FindControl时会出现错误。谢谢。 – Anthony 2010-08-20 13:32:40

+0

其实Hoester,有一个错字。我将该控件称为“Dev_Document_Date”与“Dev_Doc_Date”。这使我重新思考FindControl如何工作。为什么它没有错误?但仍然没有回来。 – Anthony 2010-08-20 14:24:09

我采取了不同的路线。我使用javascript传递了会话变量。如果文本框(日期)的长度等于8(验证确保它是),则将第二个文本框的值设置为会话变量。

function Uploader(field, e) 
{ 
    var inputName = field.name; 
    var len = document.getElementById(inputName).value.length; 

    if (len == 8) 
    { 
     window.document.form1.FormView1$Dev_Doc_Updater.value = "<%= Session("PIN") %>"; 
    } 
}