私が尋ねる理由は、ユーザーがクリックしたものに応じて表示/非表示にするテキストボックスやラベルなどで満たされた更新パネルがあるためです。後で、ループを実行してすべてのテキストボックスをクリアします。以前は問題なく機能していましたが、AJAX Update Panelを追加したので、「無効なポストバックまたはコールバック引数」エラーが発生します。
これはそのAJAXアップデートパネルのせいですか?それとも私は自分で完全に間違ったことをしていますか?
ありがとう、エリー
[編集]:わかりました。コードがどこから来ているのかわからないため、大量のコードを追加しています。
これは、レコードを書き込む方法です。
protected void AddEmployerRecord()
{
connection = new SqlConnection();
connection.ConnectionString = "****";
connection.Open();
newEmployer = new EmployerCRUD(connection);
employerRow.employerName = tb_employer.Text;
employerRow.empPhone = tb_phone.Text;
employerRow.empFax = tb_fax.Text;
employerRow.empEmail = tb_email.Text;
employerRow.empAddress = tb_address.Text;
employerRow.empCity = tb_city.Text;
employerRow.empState = ddl_state.SelectedValue.ToString();
employerRow.empZIP = tb_ZIP.Text;
employerRow.startDate = Convert.ToDateTime(tb_fromDate.Text);
employerRow.endDate = Convert.ToDateTime(tb_toDate.Text);
employerRow.startPay = Convert.ToDecimal(tb_startPay.Text);
employerRow.endPay = Convert.ToDecimal(tb_endPay.Text);
employerRow.leaveReason = tb_leaveReason.Text;
employerRow.supervisorFName = tb_superFName.Text;
employerRow.supervisorLName = tb_superLName.Text;
employerRow.contactForRef = rbl_contact.SelectedValue.ToString();
employerRow.jobDesc = tb_jobDesc.Text;
employerRow.applicantID = 10010;
//employerRow.applicantID = Convert.ToInt32(Session["ApplicantNum"]);
employerRow.supervisorTitle = tb_superTitle.Text;
employerRow.jobTitle = tb_jobTitle.Text;
employerRow.startPayType = ddl_startPayType.SelectedValue.ToString();
employerRow.endPayType = ddl_endPayType.SelectedValue.ToString();
ct_emp = newEmployer.Add(employerRow);
// *************** Error Message *************** //
//if (ct_emp.Message != "OK")
// Error message
//else
//
connection.Close();
}
そして、これはグリッドをロードする方法です。
protected void LoadGrid()
{
try
{
SqlConnection pConnection = new SqlConnection();
pConnection.ConnectionString = "**";
pConnection.Open();
string sqlstatement = "SELECT EmployerID, EmployerName FROM dbo.EMPLOYER WHERE ApplicantID = @applicantID";
command = new SqlCommand(sqlstatement, pConnection);
command.Parameters.AddWithValue("@applicantID", 10010);
//command.Parameters.AddWithValue("@applicantID", Session["ApplicantNum"].ToString().Trim());
ds = new DataSet();
adapter = new SqlDataAdapter(command);
builder = new SqlCommandBuilder(adapter);
adapter.Fill(ds);
gv_employers.DataSource = ds.Tables[0];
gv_employers.DataBind();
pConnection.Close();
}
catch (Exception error)
{
Response.Write(error.Message);
}
}
補足として、私がデバッグしている間、ApplicantIDはわずか10010です(一貫性が必要です)。
また、データをグリッドに再バインドしようとすると、この問題が発生することをどこかで読みました。ページがリロードされるたびに、そのLoadGrid()メソッドを実行します。データを別の場所にバインドする必要がありますか?もしそうなら、どのように?