我正在尝试获取一个基本的可序列化对象,该对象保存在一个可序列化的字典中,并将其传递给javascript函数,该函数将生成具有该信息的模态。该对象有一些字符串变量,没什么复杂的。
这是我传递的对象:
[Serializable]
public class Details
{
public Details() {}
public string ID { get; set; }
public string Name { get; set; }
}
我将字符串设置为适当的值,然后尝试创建一个调用javascript模式的链接(该ID调用适当的:
protected string WriteDetailsLink(object ID)
{
string results = "";
JavaScriptSerializer jss = new JavaScriptSerializer();
results += "showDetailsModal(" + jss.Serialize(dictionaryList[ID.ToString()]) + "); return false;";
return results;
}
在aspx页面上的html链接本身:
<a id='detailsDialog' onclick="<%# WriteDetailsLink( Eval( "ID" )) %>">Details</a>
模态的javascript函数,目前没有显示任何内容:
function showDetailsModal(Details) {
$('#DetailsModal_dialog').dialog(
{
modal: true,
//height: 500,
width: 600,
resizable: false,
draggable: false,
open: function () {
},
close: function(event, ui) {}
});
}
一切正常,ID传递,当我在运行后检查链接时看起来像这样:
<a id='detailsDialog' onclick="showDetailsModal({"ID":"40662463","Name":"72485-3"}); return false;">Details</a>
我有一个模态的div设置,我试图解析插入其中的名称,这是新函数
function showBatchDetailsModal(groupDetails) {
var tmpData = jQuery.parseJSON(groupDetails);
$('#DetailsModal_dialog').dialog(
{
modal: true,
//height: 500,
width: 600,
resizable: false,
draggable: false,
open: function () {
$('#detailsName').text(tmpData.Name);
},
close: function(event, ui) {}
});
}
我正在
jquery.min.js中的“Uncaught SyntaxError:Unexpected token o”
$('#detailsName')也是如此.val(tmpData.Name);和.value。
答案 0 :(得分:0)
var jsonObj = JSON.parse('{"ID":"40662463","Name":"72485-3"}');
然后,如果你只是放jsonObj.ID
,你得到的值为40662463。
您可以使用inspect元素在chrome的控制台中测试它。你错过了
我放入解析函数的' '
答案 1 :(得分:0)
您的代码应为以下
function showBatchDetailsModal(groupDetails) {
var tmpData = groupDetails; // jQuery.parseJSON(groupDetails);
//Don't need to parse it into json. as its already parsed.
$('#DetailsModal_dialog').dialog(
{
modal: true,
//height: 500,
width: 600,
resizable: false,
draggable: false,
open: function () {
$('#detailsName').val(tmpData.BatchName); //<--- .text(...) is changed to .val(...)
//If val(...) doesn't work use .text(...)
},
close: function(event, ui) {}
});
}