0

テキストボックスを有効または無効にする機能を提供したWebフォームを作成しています。ただし、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の値を保存するにはどうすればよいですか?助けてください!

4

2 に答える 2

1

できることは次のとおりです。非表示フィールドを追加し、テキストボックスを無効にするときに、その値を非表示フィールドに設定します。次に、テキストボックスの値が必要な場合は、最初にNullOrEmptyであるかどうかを確認します。いいえの場合、はいテキストボックスの値。それ以外の場合は、非表示フィールドの値を使用します。

于 2012-10-13T04:46:51.730 に答える
1

問題は、ASPが無効な要素の値をビューステートに保存しないことです。テキストボックスを読み取り専用に設定する可能性が高くなります。

于 2012-10-13T04:47:10.210 に答える