如何使用C#从WebForm中的禁用文本框中获取值

时间:2012-10-13 04:38:17

标签: c# webforms

我正在创建一个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的值?请帮忙!

2 个答案:

答案 0 :(得分:1)

问题是,ASP不会在视图状态中存储禁用元素的值。您应该更有可能将文本框设置为只读。

答案 1 :(得分:0)

您可以做的是:添加隐藏字段,禁用文本框时,将其值设置为隐藏字段。然后,当您需要文本框值时,首先检查它是否为NullOrEmpty。如果不是,则是文本框的值。否则,使用隐藏字段的值。