c#
  • javascript
  • html
  • 2012-12-06 57 views 1 likes 
    1

    我從c#代碼動態構建html表。這裏是我的代碼的一部分:無法將日期從c#傳遞給javascript函數

    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>" 
    ); 
    

    tdonclick我試圖日期傳遞給JavaScript函數。

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

    但是當我通過一個日期一樣2012-10-01,我得到一個值1999年的JavaScript函數內部所有的時間。 任何人都可以對我做錯的事情有所瞭解嗎?

    這裏是js函數

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

    嗯,這將是有益的,看看你的JavaScript了。 –

    +0

    聽起來更像是JavaScript函數(未顯示)正在操作日期。 – SpaceBison

    回答

    4

    查看網頁源代碼,你會看到你的問題。您在生成的代碼中缺少引號。

    總之你正在做

    alert(2012-10-01); 
    

    alert("2012-10-01"); 
    

    添加逃脫「

    listHTML.Append("<td onClick='GoToHourlyReport(\"" + Convert.ToDateTime(dr["IntervalStartTime"]).ToString("yyyy-MM-dd") + "\",\"" + deptId + "\");'... 
    
    +0

    以及如何添加「之前的日期。我嘗試通過添加一個',但它是渲染?標記 – iJade

    +0

    添加一個轉義」以包圍字符串。或者使用字符串生成器! – epascarello

    +0

    把它放在字符串中:\「 –

    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)" ...> 
    
    相關問題