gpt4 book ai didi

c# - 文本框在回发时失去值(value)

转载 作者:IT王子 更新时间:2023-10-29 04:41:34 24 4
gpt4 key购买 nike

我的网页上有大约 4 个文本框...有些是 asp:textboxes,有些是 input type="text"。

输入文本框通过 javascript 弹出日历控件填充,而 asp.net 文本框通过键入填充。这些文本框的初始值是从数据库中检索的。

当用户更改这些值时,它们不会被保存,并且在单击提交按钮后文本框会被清除。请帮助解决这个困惑。谢谢。

感谢您的回复,但它仍然无法正常工作.....

我已将此代码放入我的页面加载事件中

if (Page.IsPostBack)
{
if (ViewState["stock"] != null)
TextBoxMaterial.Text = ViewState["stock"].ToString();

if (ViewState["supplier"] != null)
TextBoxSupplier.Text = ViewState["supplier"].ToString();

if(ViewState["matTime"] != null)
TextBoxMatTime.Text = ViewState["matTime"].ToString();

if(ViewState["prodTime"] != null)
TextBoxProdTime.Text = ViewState["prodTime"].ToString();

if (ViewState["shipTime"] != null)
TextBoxShipTime.Text = ViewState["shipTime"].ToString();

if(ViewState["cmr"] != null)
cmrDue.Value = ViewState["cmr"].ToString();

if(ViewState["kc"] != null)
kcDue.Value = ViewState["kc"].ToString();

}

同时将下面的代码放在按钮的onclick事件中

ViewState["stock"] = TextBoxMaterial.Text;
ViewState["supplier"] = TextBoxSupplier.Text;
ViewState["matTime"] = TextBoxMatTime.Text;
ViewState["prodTime"] = TextBoxProdTime.Text;
ViewState["shipTime"] = TextBoxShipTime.Text;
ViewState["cmr"] = cmrDue.Value.ToString();
ViewState["kc"] = kcDue.Value.ToString();

string prodLine = DDProdLine.SelectedValue;
string stock1 = DDMaterial.SelectedValue;
string stock2 = ViewState["stock"].ToString();
string supplier = ViewState["supplier"].ToString();
string billet = RBBillet.SelectedValue;
string matTime1 = ViewState["matTime"].ToString();
string matTime2 = DDMatTime.SelectedValue;
string prodTime1 = ViewState["prodTime"].ToString();
string prodTime2 = DDProdTime.SelectedValue;
string shipTime1 = ViewState["shipTime"].ToString();
string shipTime2 = DDShipTime.SelectedValue;

CultureInfo cultureInfo = CultureInfo.CurrentCulture;
string format = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern.ToString();
string cmr = ViewState["cmr"].ToString();
string kc = ViewState["kc"].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)
{
TextBoxProdComment2.Text = e.Message;
System.Diagnostics.Trace.Write(e.StackTrace);
}

文本框仍然清除,没有一个是只读的............

请帮忙

最佳答案

我遇到了类似的问题和 “在回发期间丢失由 javascript 更改的数据” 的解决方案最好用这篇文章描述 ViewState and Readonly Property of Textbox

例如,假设我们有这个 asp.net 控件:

<asp:TextBox ID="txtName" runat="server" EnableViewState= "false" ReadOnly="true" /> 

如果您在客户端通过 javascript 更改此控件的值,它将不会通过服务器端的回发传播...除非您删除 readonly="true",否则无论您使用 javascript 做什么。现在,如上文所述,此问题已有解决方案。

简单地把它放在 PageLoad 事件中

if (!IsPostBack)
txtName.Attributes.Add("readonly","readonly");

你就完成了。如果您的目的是禁用控件进行编辑,请不要忘记删除 ReadOnly="true"或 Enable="false",只需使用上面的代码片段即可。如果你打开它,不要忘记删除 Enable="false"。

关于c# - 文本框在回发时失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com