我正在创建一个WebForm,我在其中提供了启用和禁用文本框的功能。但是,当我在TextBox中输入值然后禁用它。我无法将TextBox值保存在数据库中。每当代码尝试保存该值时,都会在其中获取一个空值,因此它会存储一个空值。当我没有禁用TextBox时,该值成功存储在表中。以下是一些与之相关的代码......
protected void btnCreateSubAcct_Click(object sender, EventArgs e)
{
int subAccountID = 0;
try
{
if (Page.IsValid)
{
subAccountID = SaveUpdateSubAccount();
if (string.IsNullOrEmpty(HiddenFieldSubAccntID.Value))
{
SessionHandler.Set(SessionHandler.SubAccountIDKey, subAccountID);
Response.Redirect("~/newaccountwelcome");
}
else
{
lblDialogMessage.Text = "Subaccount updated successfully!";
modalPage.Visible = true;
SetFocus(btnOK.ClientID);
}
}
}
catch (ThreadAbortException)
{
}
catch (Exception ex)
{
_log.Error("Error Occured While Creation of SubAccount.", ex);
throw;
}
}
private int SaveUpdateSubAccount()
{
SubAccount objSubAccount = null;
if (!string.IsNullOrEmpty(HiddenFieldSubAccntID.Value) && !HiddenFieldSubAccntID.Value.Equals("0"))
{
objSubAccount = SubAccount.GetSubAccount(Convert.ToInt32(HiddenFieldSubAccntID.Value));
}
if (objSubAccount == null)
{
objSubAccount = new SubAccount();
objSubAccount.CreatedByUser = SessionHandler.CurrentUser.UserID;
}
objSubAccount.FBO1FirstName = txtFBO1FirstName.Text.Trim();
objSubAccount.FBO1MiddleInitial = txtFBO1MiddleName.Text.Trim();
objSubAccount.FBO1LastName = txtFBO1LastName.Text.Trim();
objSubAccount.FBO1AccountTitling = txtFbo1AccountTitling.Text.Trim();
objSubAccount.FBO1TaxIDType = fbo1RadioButtonList.SelectedItem.Value;
objSubAccount.FBO1TaxID = Helpers.GetUnFormattedTIN(txtFbo1TaxId.Text.Trim());
}
//under the class SubAccount, the information is getting stored in the database
每当我尝试保存文本FBO1TaxID的值时,当它处于禁用模式时,此TextBox下的值为空。
如何在数据库中的表下保存禁用模式下TextBox的值?请帮忙!
答案 0 :(得分:1)
问题是,ASP不会在视图状态中存储禁用元素的值。您应该更有可能将文本框设置为只读。
答案 1 :(得分:0)
您可以做的是:添加隐藏字段,禁用文本框时,将其值设置为隐藏字段。然后,当您需要文本框值时,首先检查它是否为NullOrEmpty。如果不是,则是文本框的值。否则,使用隐藏字段的值。