0
我有這樣的代碼在.cshtml文件傳遞參數:通過在HTML文件.cshtml
var peopleList = $('#PeopleListTable').dataTable({
// not relevant
"fnRender": function (oObj) {
var documentiddata = oObj.aData[0];
var notesdata = (oObj.aData[2]);
//alert(notesdata);
if (notesdata != null) {
var image = "images/AR/Check-on.png";
// return '<a href="#" id="' + notesdata + '" onclick="return ShowNotes(this);">' + '<img src="' + image + '" />' + '</a>';
return '<p><a onmouseout="return hideNotePopup();" onmouseover="return showNotePopup(notesdata, event);" href="javascript:void(0);" id="' + documentiddata + '">' + '<img src="' + image + '" />' + '</a></p>'
} else {
return '<a href="#" id="' + documentiddata + '"> ' + '<img src="images/AR/Check-off.png" />' + '</a>';
}
}
},
{ "sName": "OfficerName", sType: "string", sWidth: "12%" },
{ "sName": "CreateDate", sType: "string", sWidth: "15%" },
{ "sName": "FinalizedDate", sType: "string", sWidth: "15%" },
{ "sName": "TransferDate", sType: "string", sWidth: "15%" },
{ "sName": "AgencyOri", sType: "string", sWidth: "10%" }
]
});
那麼這個代碼在JavaScript:
function showNotePopup(notesdata, e) {
$("#NoteDialog").dialog('close');
$("#NoteDialog").removeClass("ui-icon ui-icon-closethick");
$("#NoteDialog").dialog({
autoOpen: false,
modal: true,
resizable: false,
position: [e.pageX, e.pageY-190]
});
$("#NoteDialog").dialog('open');
document.getElementById("note").innerHTML = notesdata;
}
這段代碼的目標是將鼠標懸停在數據表中的註釋圖像,然後彈出顯示註釋的內容。如果我有alert(notesdata)
,說明正確顯示。但是,當我將鼠標懸停在圖像上並檢查控制檯時,它說在showNotePopup()
調用中未定義notesdata
。我試圖通過this
和oObj
,無濟於事。我怎樣才能從cshtml裏面獲得notesdata
到javascript的功能?
+1改變
。請注意,所有形式的'eval'通常被認爲是不好的做法...不幸的是,OP是用字符串連接構造html而不是使用一些模板引擎或者使用jQuery創建元素 - 所以這個答案(如果'notesdata'來減去腳本注入問題從用戶)是好的方法。 –
@ClaudioRedi這是造成語法錯誤,而以前沒有一個。開發工具告訴我有一個意外的令牌}。任何可能的原因?另外,我在你的答案中交換了單引號和雙引號的順序,因爲整個return語句用單引號引起來。 – aquemini
@aquemini:對不起,我引用了一個錯誤。請嘗試用編輯的版本 –