バックエンドのWebメソッドに渡すjavascript変数のページに、多数の入力への参照を格納しようとしています。私のページは、ページが読み込まれたときに2つの隠れたフォームの1つをプルアップしてデータで満たしているだけなので、入力の値の一部は「未定義」です。これにより、私のwebmethodが呼び出されることのないデータベースを更新するエラーが発生します。言い換えればgetElementById()。値戻り値なし
const fields = {
name: '<%=eventFormName.ClientID%>',
type: '<%=eventFormType.ClientID%>',
subjectLineSD: '<%=eventFormSubjectLineSD.ClientID%>',
summarySD: '<%=eventFormSummarySD.ClientID%>',
resourcesAffectedSD: '<%=eventFormResourcesAffectedSD.ClientID%>',
peopleAffectedSD: '<%=eventFormPeopleAffectedSD.ClientID%>',
workAroundSD: '<%=eventFormWorkAroundSD.ClientID%>',
startTimeSD: '<%=eventFormStartTimeSD.ClientID%>',
endTimeSD: '<%=eventFormEstimatedTimeOfResolutionSD.ClientID%>',
subjectLinePO: '<%=eventFormSubjectLinePO.ClientID%>',
summaryPO: '<%=eventFormSummaryPO.ClientID%>',
resourcesAffectedPO: '<%=eventFormResourcesBeingChangedPO.ClientID%>',
changeBenefitsPO: '<%=eventFormChangeBenefitsPO.ClientID%>',
impactOnEndUsersPO: '<%=eventFormImpactOnEndUsersPO.ClientID%>',
startTimePO: '<%=eventFormProposedStartDatePO.ClientID%>',
endTimePO: '<%=eventFormProposedEndDatePO.ClientID%>',
}
const values = Object.keys(fields).map((key) => {
const elm = document.getElementById(fields[key])
if (elm) {
return elm.value;
}
return null;
})
PageMethods.updateData.apply(this, values);
、そして渡されることを私は「未定義」または「ヌル」値を持つように、これらの変数のいくつかのために可能性がどのように次のよう
私のjavascriptのコールの1の例があります私のPageMethodsコールバック私のバックエンドを介して?あなたが存在しない要素を取得しようとしている
[WebMethod]
public static string updateData(string[] values)
{
try
{
SqlCommand command;
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString);
command = new SqlCommand("updateNetEvent", sqlConn);
if (values[1] == "Planned Outage")
{
// NetEvent Parameters
command.Parameters.AddWithValue("@Name", values[0]);
command.Parameters.AddWithValue("@Type", values[1]);
command.Parameters.AddWithValue("@SubjectLine", values[9]);
command.Parameters.AddWithValue("@StartTime", values[14]);
command.Parameters.AddWithValue("@EndTime", values[15]);
// UserAction Parameters
command.Parameters.AddWithValue("@Summary", values[10]);
command.Parameters.AddWithValue("@ResourcesAffected", values[11]);
command.Parameters.AddWithValue("@ChangeBenefits", values[12]);
command.Parameters.AddWithValue("@PeopleAffected", System.Data.SqlTypes.SqlString.Null);
command.Parameters.AddWithValue("@ImpactOnEndUsers", values[13]);
command.Parameters.AddWithValue("@WorkAround", System.Data.SqlTypes.SqlString.Null);
command.Parameters.AddWithValue("@Status", "A");
command.Parameters.AddWithValue("@PerformedBy", "placeholder"); // TODO: Update
command.Parameters.AddWithValue("@PerformedOn", DateTime.Now.ToString());
}
else if (values[1] == "Service Disruption")
{
// NetEvent Parameters
command.Parameters.AddWithValue("@Name", values[0]);
command.Parameters.AddWithValue("@Type", values[1]);
command.Parameters.AddWithValue("@SubjectLine", values[2]);
command.Parameters.AddWithValue("@StartTime", values[7]);
command.Parameters.AddWithValue("@EndTime", values[8]);
// UserAction Parameters
command.Parameters.AddWithValue("@Summary", values[3]);
command.Parameters.AddWithValue("@ResourcesAffected", values[4]);
command.Parameters.AddWithValue("@ChangeBenefits", System.Data.SqlTypes.SqlString.Null);
command.Parameters.AddWithValue("@PeopleAffected", values[5]);
command.Parameters.AddWithValue("@ImpactOnEndUsers", System.Data.SqlTypes.SqlString.Null);
command.Parameters.AddWithValue("@WorkAround", values[6]);
command.Parameters.AddWithValue("@Status", "A");
command.Parameters.AddWithValue("@PerformedBy", "placeholder"); // TODO: Update
command.Parameters.AddWithValue("@PerformedOn", DateTime.Now.ToString());
}
command.CommandType = System.Data.CommandType.StoredProcedure;
sqlConn.Open();
command.ExecuteNonQuery();
sqlConn.Close();
return "./StartPage.aspx";
}
catch (Exception ex)
{
Console.WriteLine("ERROR: " + ex.ToString()); // Add a log helper to display errors here
return "Error in updateData WebMethod";
}
}
は、彼らが価値を持っているので、N/Aまたは何かにセットを満たしませんが、彼らは未定義として扱われていないフィールドを作ります。フィールドにデフォルト値が設定されている可能性があります。 – schylake
エラーは何ですか? 'ヌルのプロパティ 'value'を読み取れませんか? – Sphinxxx