2011-05-03 4 views
-1

내 웹 페이지에 4 개의 텍스트 상자가 있는데, 그 중 하나는 자바 스크립트 달력 컨트롤을 사용하여 채워집니다 ... 문제는 이러한 모든 텍스트 상자가 포스트 백 이후에 값을 잃어 버리는 것입니다. 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

당신은 당신의 ** 페이지로드를 보여줄 수 있도록하기 전에 조건 if (!Page.IsPostBack)을 둘 필요 ** code .. 나는 당신이'IsPostBack' 가드 절을 놓치고 있다고 생각한다. – V4Vendetta

+0

텍스트 박스와 버튼을위한'.aspx'의 포스트 코드. –

답변

1

업데이트를 샘플 코드는 IsPostBack을 플래그에 대해 동의하지 못할 수 없습니다. 난 당신이 페이지로드 이벤트에서 텍스트 상자의 값을 삭제/할당하는 의심

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

텍스트 상자는 asp : textbox 및 bee

1

...

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

당신은

관련 문제