2011-05-03 73 views
-1

我的网页上有4个文本框,其中一个是使用javascript日历控件填充的......问题是所有这些文本框在回发后都失去了它们的值(点击一个asp.net按钮控件)。文本框是不是只读,所以我不能弄清楚为什么会是这样......请帮助...感谢asp.net textbox和dropdownlist在回发中丢失的值

protected void Page_Load(object sender, EventArgs e) 
     { 
      BindProdTopDetails(); 
      BindProdTable(); 
      // BindProdComment(); 
     } 

protected void BtnProdUpdate_Click(object sender, EventArgs e) 
     { 
      //saveProdDetails(); 
      bool success = saveProdDetails(); 
      if (success) 
      { 
       string strScript96 = "<script language=JavaScript>"; 
       strScript96 += "javascript:alert('Update Successful');"; 
       strScript96 += "</script>"; 
       if (!ClientScript.IsStartupScriptRegistered("clientScript")) 
        ClientScript.RegisterClientScriptBlock(this.GetType(), clientScript", strScript96); 
      } 
     } 

public bool saveProdDetails() 
     { 
      string prodLine = DDProdLine.SelectedValue; 
      string stock1 = DDMaterial.SelectedValue; 
      string stock2 = TextBoxMaterial.Text.Trim().ToString(); 
      string supplier = TextBoxSupplier.Text.Trim().ToString(); 
      string billet = RBBillet.SelectedValue; 
      string matTime1 = TextBoxMatTime.Text.Trim().ToString(); 
      string matTime2 = DDMatTime.SelectedValue; 
      string prodTime1 = TextBoxProdTime.Text.Trim().ToString(); 
      string prodTime2 = DDProdTime.SelectedValue; 
      string shipTime1 = TextBoxShipTime.Text.Trim().ToString(); 
      string shipTime2 = DDShipTime.SelectedValue; 

      CultureInfo cultureInfo = CultureInfo.CurrentCulture; 
      string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString(); 
      string cmr = cmrDue.Value.ToString(); 
      string kc = kcDue.Value.ToString(); 
      string x = cmr.Substring(3, 2); 
      string y = cmr.Substring(0, 2); 
      string z = cmr.Substring(6, 4); 
      string x1 = kc.Substring(3, 2); 
      string y1 = kc.Substring(0, 2); 
      string z1 = kc.Substring(6, 4); 
      string finalCmr = x + "/" + y + "/" + z; 
      string finalKC = x1 + "/" + y1 + "/" + z1; 

      DateTime dt = DateTime.ParseExact(finalCmr, format, cultureInfo); 
      DateTime cr = DateTime.ParseExact(finalKC, format, cultureInfo); 

      string custDate = dt.ToString("dd/mm/yyyy"); 
      string kcDate = cr.ToString("dd/mm/yyyy"); 
      string id = Request.QueryString["id"]; 
      bool success = true; 

      TextBoxProdComment1.Text = stock2 + "," + supplier + matTime1 + "," + prodTime1 + "," + shipTime1 + "," + custDate 
       + "," + kcDate; 

      try 
      { 
       success = CRTopButtons.SaveProdTable(id, prodLine, stock1, supplier, billet, matTime1, matTime2, prodTime1, 
        prodTime2, shipTime1, shipTime2, custDate, kcDate); 
      } 
      catch (Exception e) 
      { 
       System.Diagnostics.Trace.Write(e.StackTrace); 
      } 

      return success; 
     } 
+0

你能告诉你的**页面加载**代码..我认为你错过了'IsPostBack'后卫子句 – V4Vendetta 2011-05-03 11:18:30

+0

来自'.aspx'的文本框和按钮的代码。 – 2011-05-03 11:22:58

回答

1

更新您的示例代码,同意有关的IsPostBack标志。

if (!IsPostBack) 
{ 
    BindProdTopDetails(); 
    BindProdTable(); 
    // BindProdComment(); 
} 
+0

文本框都是asp:textbox和 bee 2011-05-03 11:35:18

1

我怀疑你是分配/清除页面加载事件文本框的值...

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     TextBox1.Text = ""; 
    } 
} 

你需要把状态if (!Page.IsPostBack)这样做之前