读书人

jquery调用ashx文件中返回值的有关问题

发布时间: 2013-04-20 19:43:01 作者: rapoo

jquery调用ashx文件中返回值的问题
js:
控件:<input type=text onblur="checkdata(this)" id="wldm'+ newRowIndex +'" name="wldm'+newRowIndex+'"/>
注:控件id是动态生成

function checkdata(obj)
{
var tb_id=obj.id;
var tb_text=obj.value;
$("#ctl00_ContentPlaceHolder1_ddl_DP").empty();
$.getJSON("DPData.ashx?value="+tb_text+"&para=" + Math.random().toString(),null,function(json){
$.each(json,function(i){$("#"+tb_id).val(json[i].ID);});
});

}



ashx文件:
public class DPData : IHttpHandler {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write(Result(context));
}

public StringBuilder Result(HttpContext context)
{
string connect = System.Configuration.ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
SqlConnection con = new SqlConnection(connect);
con.Open();
string value = context.Request.QueryString["value"];
string sql = "select ID,DPName from DPTable where id='" + value + "'";
SqlDataAdapter dap = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
dap.Fill(ds, "Table");
StringBuilder strClass = new StringBuilder();
if (ds.Tables[0].Rows.Count > 0)
{
strClass.Append("[");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
strClass.Append("{");
strClass.Append("\"ID\":\"" + ds.Tables[0].Rows[i]["ID"].ToString() + "\",");
strClass.Append("\"DPName\":\"" + ds.Tables[0].Rows[i]["DPName"].ToString() + "\"");

if (i != ds.Tables[0].Rows.Count - 1)
{
strClass.Append("},");


}
}
}
strClass.Append("}");
strClass.Append("]");
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.Write(strClass.ToString());
context.Response.End();
return strClass;
}
大侠们帮忙看看,第一次用jquery写东西,上面的代码无法赋值

不使用返回值json[i].ID,直接$("#"+tb_id).val(“jquery”),这样能赋上值。但给DropDownlist控件赋值是能赋上去的
$("#ctl00_ContentPlaceHolder1_ddl_DP").empty();
$.getJSON("DPData.ashx?value="+tb_text+"&para=" + Math.random().toString(),null,function(json){
$.each(json,function(i){$("#ctl00_ContentPlaceHolder1_ddl_DP").append($("<option></option>").val(json[i].ID).html(json[i].DPName))});
});
$("<option></option>").val("").html("").appendTo("#ctl00_ContentPlaceHolder1_ddl_DP"); JSON .NET JS
[解决办法]
进$.each(json,function(i){...}里吗?
你加个alert看看
[解决办法]


function checkdata(obj)
{
$("#ctl00_ContentPlaceHolder1_ddl_DP").empty();
$.getJSON("DPData.ashx?value="+$(obj).val()+"&para=" + Math.random().toString(),null,function(json){
$.each(json,function(i){
$(obj).val(json[i].ID);
}
);
}
);
}

这样试试?
[解决办法]
$.each(json,function(i){$("#"+tb_id).val(json[i].ID);});
这个你想表达什么呢?不停的附值?each==foreach==for(var i=0;i<json.length;i++)

读书人网 >asp.net

热点推荐