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+"¶=" + 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+"¶=" + 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.NETJS
控件:<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+"¶=" + 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+"¶=" + 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.NETJS
你加个alert看看
$.each(json,function(i){$("#"+tb_id).val(“jquery”);});
这样是可以赋值的,说明可以进到function里面去
function checkdata(obj)
{
$("#ctl00_ContentPlaceHolder1_ddl_DP").empty();
$.getJSON("DPData.ashx?value="+$(obj).val()+"¶=" + Math.random().toString(),null,function(json){
$.each(json,function(i){
$(obj).val(json[i].ID);
}
);
}
);
}这样试试?
这个你想表达什么呢?不停的附值?each==foreach==for(var i=0;i<json.length;i++)
var tb_text=obj.value;
$.getJSON("DPData.ashx?value="+tb_text+"¶=" + Math.random().toString(),null,function(json){
$(obj).val(json[0].DPName);
});
谢谢各位的好心帮忙,分不多,每人一点了,再次感谢了