function delCallBack(res) {
if (res != null && res.value != null) {
var resInfo = res.value;
alert(resInfo.data);
}这里res是后台AjaxPro方法返回的Json格式的字符串。我直接alert(res.value)可以弹出这样的字符串--》{data:"成功",info:"2个"}这本来是一个Json格式的对象,按我的想法是直接可以:alert(resInfo.data),可以得到"成功"的弹框的。这是为什么呢?我只是实验阶段,帮我解释下,谢谢。
if (res != null && res.value != null) {
var resInfo = res.value;
alert(resInfo.data);
}这里res是后台AjaxPro方法返回的Json格式的字符串。我直接alert(res.value)可以弹出这样的字符串--》{data:"成功",info:"2个"}这本来是一个Json格式的对象,按我的想法是直接可以:alert(resInfo.data),可以得到"成功"的弹框的。这是为什么呢?我只是实验阶段,帮我解释下,谢谢。
解决方案 »
- 有没有什么两外,弹出小窗口的
- web server 转帐怎么做,请各位大侠来帮帮忙
- “未将对象引用设置到对象的实例”的问题
- 如何在 updatepannel 里面调用 js
- WEB.Config 中的<authentication mode="Forms">下面可以放多个<form name=.auth .../> 吗
- treeview超链接跳转问题
- 如何在水晶报表中绑定动态的表?
- [高分]怎么样把要打印的代码倒出到execl中打印?
- 同一个解决方案中,不同项目互相使用的问题
- 可不可以ASP.NET MVC所有参数均自动设置为默认
- 100分请问:如何实现GridView数据源的动态绑定?
- 问个url重写的问题
alert(resInfo.data);
是否可以或使用resInfo[0].data
这个应该就是个对象的 啊如果前面加了个[var resInfo = {data:"成功",info:"2个"}]
的形式可能需要加索引。而且我这个resInfo就可以弹出来。
但是后面再加对象属性就不行了。实践过了,加[0]是不行的。。
你定义的resInfo是个简单数据类型,他并没有data或者info属性
实际上var resInfo = res.value;赋值后resinfo就是个简单的字符串
要实现你想的,需要自己定义resInfo对象,自己解析data:"成功",info:"2个"格式的字符串
this.value = value;
this.data = parseData(this.value);
this.info = parseInfo(this.value);
this.parseData = function(str){/*Todo...*/};
this.parseInfo= function(str){/*Todo...*/};
}parseData和parseInfo解析json字符串,分别得到data和info值
function delCallBack(res) {
if (res != null && res.value != null) {
var _resinfo = new resInfo(resres.value);
alert(_resinfo.data);
}
忽然想到你也可以在ajaxpro里修改,给他返回的res对象的value加上data和info属性,就可以直接用
res.value.data和res.value.info了。
谢谢,实验成功其实,我是public JsonClass()
{
} public JsonClass(string info, string data)
{
this.Info = info;
this.Data = data;
} private string _info;
private string _data;
public string Info
{
get { return _info; }
set { this._info = value; }
}
...这样的一个类的形式,返回出来的。。我之前之所以错误,是因为我方法返回的是jsonclass.tostring()了,其实我方法直接可以返回出jsonclass就可以,实现效果了。---但是碰到另一个问题了,一般我们异步的时候,我们都是从数据库中查出一个DataTable而我们js应用的时候,一般需要Json格式,当我们这种情况的时候,我们可以写方法,直接把DataTable转换为Json格式,之前我都直接返回string格式的Json格式,当然这种情况用在Jquery里面,是没有问题的,直接返回出去,我就可以把他当对象用。但是在AjaxPro中,我就无法定义个类而返回出去了。有没有好的方法
因为我不能查一个方法,去为他定义一个实体类的。。当然我们可以直接在后台拼HTML给前台返回,但是我觉得Json更好点吧。。--不知道说清楚了我的疑问没有
public static string DataTable2Json(DataTable dt)
{
System.Text.StringBuilder jsonBuilder = new System.Text.StringBuilder();
jsonBuilder.Append("[");
if (dt.Rows.Count == 0)
{
jsonBuilder.Append("]");
return jsonBuilder.ToString();
}
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
try
{
jsonBuilder.Append((dt.Rows[i][j].ToString().Replace("\"", "\\\"")).Replace("\n", "\\r\\n"));
}
catch
{
jsonBuilder.Append("");
}
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
return jsonBuilder.ToString();
}