繁体   English   中英

asp.net 文本框和下拉列表在回发时失去价值

[英]asp.net textbox and dropdownlist loses value on postback

我的网页上有 4 个文本框,其中一个使用 javascript 日历控件填充...问题是所有这些文本框在回发后都失去了价值(单击 asp.net 按钮控件)。 文本框不是只读的,所以我不知道为什么会这样...请帮助...谢谢

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;
        }

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

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

我怀疑您在页面加载事件中分配/清除文本框值...

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

你需要在这样做之前设置条件if (.Page.IsPostBack)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM