0

次のことを行う Web フォームがあります。

  1. ページの初期化で、入力されるドロップダウンがあります。この部分は正常に機能し、if(!IsPostBack) {}ルーチンに含まれています。この部分は正常に動作します。

  2. ドロップダウンリストから値を選択すると、すべてのテキスト ボックス フィールドにデータベースからの値が入力され、フィールドが編集からグレー表示されます。これは in で発生しますが、if(IsPostBack) {}これも問題ありません。

  3. チェックボックスがあります。チェックボックスをクリックすると、すべてのテキストボックスフィールドが編集可能になります。これは、ルーチン内のすべてのテキスト ボックス フィールドの名前を変更するための if (IsPostBack) {} 内でも発生します。

    protected  void performUpdate_CheckedChanged(object sender, EventArgs e)
    {
        if (performUpdate.Checked)
        {
            performDeactivate.Enabled = false;
    
            txtFirstName.Enabled = true;
            txtLastName.Enabled = true;
    
            txtContactNumber.Enabled = true;
         }  // just enabling all of the textbox fields do not worry about closing brackets.
    

問題が発生しました。テキストボックスのテキストを変更して送信をクリックすると、データベースを更新するルーチンがあり、データベースが更新されません。まったく同じ値を送信したかのようです。UpdateDateフィールドが現在の時刻でタイムスタンプされることを除いて。

これが私の送信ボタンのコードです..

   if (IsPostBack)
       {
   using (SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["3stepMacro"].ToString()))
           {
               bldSQL = "UPDATE dbo.LoanOwnerStamp SET  FirstName =@FirstName,LastName = @LastName,ContactNumber = @ContactNumber,ContactExt= @ContactExt ,EmailAddress= @EmailAddress,Fax= @Fax, LocationCity= @LocationCity, LocationState = @LocationState,BeginWorkHrs= @BeginWorkHrs,BeginWorkTime = @BeginWorkTime,EndWorkHrs= @EndWorkHrs,EndWorkTime= @EndWorkTime,Zone= @Zone,TeamMemberLanId= @TeamMemberLanId,ManagerId= @ManagerId ,UpdatedDate= @UpdateDate WHERE  TeamMemberLanId = @TeamMemberLanId";
               //   using (SqlCommand updatetLSTeamMember = new SqlCommand("sp_UpdateTeamMemberProfile", myConnection))
               using (SqlCommand updatetLSTeamMember = new SqlCommand(bldSQL, myConnection))
               {
                   //  updatetLSTeamMember.CommandType = CommandType.StoredProcedure;
                   //   string wrokingHrs = ddlBeginHrs.SelectedValue + " " + ddlBeginTime.SelectedValue + " " + lblTo.Text + " " + ddlEndHrs.SelectedValue + " " + ddlEndTime.SelectedValue;
                   /*  updatetLSTeamMember.Parameters.Add("@FirstName", SqlDbType.VarChar, 25).Value = txtFirstName.Text;
                     updatetLSTeamMember.Parameters.Add("@LastName", SqlDbType.VarChar, 30).Value = txtLastName.Text;
                     updatetLSTeamMember.Parameters.Add("@ContactNumber", SqlDbType.VarChar, 20).Value = txtContactNumber.Text;
                     updatetLSTeamMember.Parameters.Add("@ContactExt", SqlDbType.VarChar, 20).Value = txtContactExt.Text;
                     updatetLSTeamMember.Parameters.Add("@EmailAddress", SqlDbType.VarChar, 100).Value = txtEmailAddress.Text;
                     updatetLSTeamMember.Parameters.Add("@Fax", SqlDbType.VarChar, 25).Value = txtFax.Text;
                     updatetLSTeamMember.Parameters.Add("@LocationCity", SqlDbType.VarChar, 20).Value = txtLocationCity.Text;
                     updatetLSTeamMember.Parameters.Add("@LocationState", SqlDbType.VarChar, 20).Value = txtState.Text;
                     updatetLSTeamMember.Parameters.Add("@BeginWorkHrs", SqlDbType.Int).Value = ddlBeginHrs.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@BeginWorkTime", SqlDbType.VarChar, 20).Value = ddlBeginTime.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@EndWorkHrs", SqlDbType.Int).Value = ddlEndHrs.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@EndWorkTime", SqlDbType.VarChar, 20).Value = ddlEndTime.SelectedValue.ToString();
                     updatetLSTeamMember.Parameters.Add("@Zone", SqlDbType.VarChar, 20).Value = ddlZone.SelectedItem.Text;
                     updatetLSTeamMember.Parameters.Add("@TeamMemberLanId", SqlDbType.VarChar, 20).Value = txtTeamMemberLaniId.Text;
                     updatetLSTeamMember.Parameters.Add("@ManagerId", SqlDbType.VarChar, 20).Value = gblUserId;
                     updatetLSTeamMember.Parameters.Add("@UpdateDate", SqlDbType.DateTime).Value = DateTime.Now.ToLocalTime(); */

                   updatetLSTeamMember.Parameters.AddWithValue("@FirstName", gblFirstName );
                   updatetLSTeamMember.Parameters.AddWithValue("@LastName", txtLastName.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ContactNumber", txtContactNumber.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ContactExt", txtContactExt.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@EmailAddress", txtEmailAddress.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@Fax", txtFax.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@LocationCity", txtLocationCity.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@LocationState", txtState.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkHrs", ddlBeginHrs.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@BeginWorkTime", ddlBeginTime.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@EndWorkHrs", ddlEndHrs.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@EndWorkTime", ddlEndTime.SelectedValue.ToString());
                   updatetLSTeamMember.Parameters.AddWithValue("@Zone", ddlZone.SelectedItem.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@TeamMemberLanId", txtTeamMemberLaniId.Text);
                   updatetLSTeamMember.Parameters.AddWithValue("@ManagerId", gblUserId);
                   updatetLSTeamMember.Parameters.AddWithValue("@UpdateDate", DateTime.Now.ToLocalTime());

                   updatetLSTeamMember.CommandText = bldSQL;
                   updatetLSTeamMember.CommandType = CommandType.Text;

                   // pID = updatetLSTeamMember.Parameters.Add("@return_value", SqlDbType.Int);
                   //   pID.Direction = ParameterDirection.Output;
                   try
                   {
                       if (updatetLSTeamMember.Connection.State == ConnectionState.Closed)
                       {
                           updatetLSTeamMember.Connection.Open();
                       }

                       // string idcat = updatetLSTeamMember.ExecuteNonQuery().ToString();
                       rowsAffected = updatetLSTeamMember.ExecuteNonQuery();

                       //   string idcat =    updatetLSTeamMember.Parameters["@return_value"].SqlValue.ToString();

                       if (rowsAffected == 1)
                       {
                           success = rowsAffected.ToString();
                           lblError.Text = "Successfully Updated a Team Member!";
                           lblCode.Text = success.ToString();
                           return;
                       }

                       else if (rowsAffected == 0)
                       {
                           fail = rowsAffected.ToString();
                           lblError.Text = "Team Member-No Rows Affected !!";
                           lblCode.Text = fail.ToString();
                           return;
                       }

                       /*
                                              rowsAffected = insertLSTeamMember.ExecuteNonQuery();

                                               if (rowsAffected == 1)
                                           {
                                                carryOn = rowsAffected;
                                                lblLoanStamp.Text = "Successfully Added a Manager!";
                                               lblReturnCode.Text = carryOn.ToString();
                                               return;
                                           }

                                               else if (rowsAffected == -1)
                                           {
                                               carryOn = rowsAffected;
                                               lblLoanStamp.Text = "Manager Already exists, Use Update / Deactivate for Maintenance !!";
                                               lblReturnCode.Text = carryOn.ToString();
                                               return;
                                           }  
                       */
                   } // end try

今、私の懸念は Page_load ルーチンです。if(IsPostBack)これは、db にクエリを実行し、テキスト フィールドに事前入力する必要があるためです。これで、送信ボタンがテキストの変更をまったく受けなくなりました。テキストボックスの変更された値が取得されず、データベースに送信されないのはなぜですか? フォームは、列に新しいタイムスタンプを付けて、すべてをそのまま送り返しUpdateDateます。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

1

を悪用しているようですPage_Load。次の形式に従って更新してください。

protected void Page_Load(object sender, EventArgs e)
{
   if (!Page.IsPostBack)
   {
      //Populate information.
   }
}

protected void chkSomething_Changed(object sender, EventArgs e)
{
   //Do checkbox stuff
}

protected void btnSomething_Clicked(object sender, EventArgs e)
{
   //Update.... You don't need to check postback here. It's a postback, you know this because you caused it.
}
于 2013-08-09T14:50:13.153 に答える