在JavaScript或JQuery中访问数据表
本文关键字:访问 数据表 JQuery JavaScript | 更新日期: 2023-09-27 18:06:24
我已经将我的Datatable存储在一个会话变量中
Session["dt"]=dt;
我在Javascript中以
的形式访问它var oTable = '<%=Session["dt"] %>';
var oRows = oTable.fnGetNodes(); // Error here
for (var i = 0; i < oRows.length; i++) {
var x = parseInt(cells.push($(oRows[i]).find("td:eq(1)").html()));
}
但是它抛出了错误对象不支持这个属性可能出了什么问题希望有人帮助
编辑:对于您的信息,我只是获得数据表来获取其中的值并将其用于某些条件
我通过你的答案发现没有序列化可能是不可能的,所以我序列化了数据并将值传递给我所做的如下
myArray[0] = new { Flag = dt.Rows[0]["Flag"].ToString(),
status = dt1.Rows[0]["Status"].ToString() };
JavaScriptSerializer serializer1 = new JavaScriptSerializer();
sbAllUsers = serializer1.Serialize(myArray);
hfvalue.Value = sbAllUsers;
但是我不知道如何在Jquery中访问这个值,希望有人能帮助我
如下所述,从DataTable创建一个匿名类列表,并使用JavaScriptSerializer
进行序列化。并在隐藏字段hdnControl
中设置结果,现在在客户端从隐藏字段中获取值并将其解析成JSON,现在您可以访问数据了。
JavaScriptSerializer oSerializer = new JavaScriptSerializer();
var Result = (from c in dt.AsEnumerable()
select new
{
Flag = c.Field<bool>("Flag"),
Status = c.Field<string>("Status")
}).ToList();
hdnControl.Value = oSerializer.Serialize(Result);
Javascript var oTable = JSON.parse($("#hdnControl").val());
$(oTable).each(function(index, val){
console.log(val.Flag);
console.log(val.Status);
})
对象不支持....——>是一个Javascript错误…
你不能重写像这样的复杂类型。您必须首先将其序列化为字符串格式-> JSON字符串或普通字符串。
也许这篇文章可以帮助你,如何序列化一个数据表到json字符串:c#将数据表转换为JSON
protected void Page_Load(object sender, EventArgs e)
{
ICollection<MessageDTO> list = new List<MessageDTO>();
for (int i = 0; i < 10; i++)
{
var obj = new MessageDTO() { UserId = i, DateCreated = DateTime.Now, Content = i.ToString(), ChatRoomId = 1, MessageId = i };
list.Add(obj);
}
MyCustomStringProp = JsonConvert.SerializeObject(list);
}
public string MyCustomStringProp { get; set; }
从Javascript获取数据:下载以下JSON脚本并在我们的页面中引用:JSON2.js
var oTable = '<%= this.MyCustomStringProp %>';
var parsed = JSON.parse(oTable);
alert(oTable);