0
我想使用sql server中的数据库进行分组下拉列表。但它仍然是错误的。我可以返回数据类型DataTable到webform.aspx来设置分组下拉列表。我知道这是要说的。但我想当我向你展示你的代码时,你可以理解更多。如何在ASP.NET中返回DataTable类型的json使(组DropdownList)
这是我的代码在ASPX用这样的脚本
<script type="text/javascript">
$('#<%=ddReport.ClientID %>').append(
$('<option></option>').val('0').html('Please Wait...')
);
$.ajax({
url: "insertForm.aspx/GetreportDoctor",
data: "{}",
type: "POST",
dataType: "json",
contentType: "application/json; charset-utf-8",
success: OnSuccess,
error: OnError
});
//for get selected value from codebehide
$('#<%= ddReport.ClientID%>').change(function() {
$('#<%= hfSelectedValue.ClientID%>').val($('#<%= ddReport.ClientID%>').val());
});
});
function OnSuccess(data) {
$('#<%= ddReport.ClientID%>').empty();
var dt = data;
var dropdown = $('#<%=ddReport.ClientID%>');
var order = "";
var optGroup;
for (var i = 0; i < dt.Rows.Count; i++) {
if (dt.Rows[i]["create_by"].toString() != order) {
optGroup = $("<optgroup style='background-color:#CCCC00' />");
optGroup.attr('label', dt.Rows[i]["create_by"].toString());
}
order = dt.Rows[i]["create_by"].toString();
optGroup.append(
$('<option></option>').val(dt.Rows[i]["rowID"].toString()).html(dt.Rows[i]["encode"])
);
dropdown.append(optGroup);
}
//for keep value after postback
$('<%=ddReport.ClientID%>').val($('#<%= hfSelectedValue.ClientID%>').val());
}
function OnError() {
alert("Failed!!!");
}
</script>
这是我的代码在codebehide
[WebMethod]
public static DataTable GetreportDoctor() {
Dictionary<string, string> report_doc = new Dictionary<string, string>();
SqlDataReader dr;
DataTable dt = new DataTable();
SqlConnection EMR_Conn = new SqlConnection(@"Data Source=192.168.24.36;Initial Catalog=EMR;Persist Security Info=True;User ID=sa;Password=bpk$1234");
EMR_Conn.Open();
SqlCommand cmd_select = new SqlCommand("select rowID, encode, create_by FROM MED_main order by create_by", EMR_Conn);
dr = cmd_select.ExecuteReader();
dt.Load(dr);
return dt;
}
它去循环的OnError当我运行项目,以获取数据。我在这种情况下怎么办,非常感谢。