1

私はc#コードからhtmlテーブルを動的に構築しています。これが私のコードの一部です:

listHTML.Append("<td onClick='GoToHourlyReport("
    + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd")
    + ","
    + deptId
    + ");' align='center' valign='middle' class='graph_red_grid_text'>"
    + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd hh:mm:ss")
    + "</td>"
);

onclickJavaScript関数に日付を渡そtdうとしています。

onClick='GoToHourlyReport("
    + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd")
    + ","
    + deptId
    + ");' 

しかし、のような日付を渡すと、2012-10-01JavaScript関数内で常に値1999を取得します。誰かが私が間違っていることについていくつかの光を投げることができますか?

これがjs関数です

    function GoToHourlyReport(date, deptId) {
    window.location.href = "CallAverageHourlyReport_BW.aspx?Date=" + date + "&Queue=" + deptId;
}
4

2 に答える 2

4

ページソースを表示すると、問題が表示されます。生成されたコードに引用符がありません。

要するにあなたはやっている

alert(2012-10-01);

いいえ

alert("2012-10-01");

エスケープされた"を追加します

listHTML.Append("<td onClick='GoToHourlyReport(\"" + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd") + "\",\"" + deptId + "\");'...
于 2012-12-06T13:33:54.553 に答える
1

日付を文字列として渡す必要があります。そうしないと、数値として解釈されます (2,010 - 10 - 1 = 1,999):

listHTML.Append("<td onClick=\"GoToHourlyReport('"
    + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd")
    + "',"
    + deptId
    + ");\" align='center' valign='middle' class='graph_red_grid_text'>"
    + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd hh:mm:ss")
    + "</td>"
);

これにより、次が生成されます。

<td onclick="GoToHourlyReport('2010-10-01', 1)" ...>
于 2012-12-06T13:43:06.283 に答える