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當我運行項目,以獲取數據。我在這種情況下怎麼辦,非常感謝。