我以前没有在Json上工作过,这是我的第一次,正如我所料,我想要用JsonData填充DropDown。 在这里我正在做的是我有一个Xml,我在Json转换如:
string xml = "<Root><Name>A</Name><Name>B</Name><Name>C</Name></Root>";
然后执行此操作将其转换为 JsonString :
XmlDocument doc = new XmlDocument();
doc.LoadXml(Xml);
string jsonText = JsonConvert.SerializeXmlNode(doc);
目前我的查看就像:
<div>
<input type="button" value="work" name="work" id="idwork" />
</div>
@Html.DropDownListFor(x => x.Name, new SelectList(Enumerable.Empty<SelectListItem>()), new {id="ddl_items" })
脚本:
var ddl = $('#ddl_items');
$('#idwork').on('click', function () {
$.ajax({
url: url,
data: {},
type: 'post',
contentType: 'application/json; charset=utf-8',
success: function (myJSONdata) {
$(myJSONdata.Name).each(function () {
ddl.append(
$('<option/>', {
value: this.ReworkTunnelName
}).html(this.Nome)
..
..
});
现在我要做的是在这个JsonData的帮助下用名字填充下拉列表。 请帮忙
答案 0 :(得分:1)
$.each(myJSONdata, function ()
{
ddl.append($("<option></option>").attr("value", this.ReworkTunnelName).text(this.Nome));
});
修改
$.each(myJSONdata, function ()
{
ddl.append($("<option></option>").attr("value", this.ReworkTunnelName).attr("text",this.Nome));
});
$.each(myJSONdata.Root, function ()
{
ddl.append($("<option></option>").attr("text", this.ReworkTunnelName));
});
答案 1 :(得分:0)
您可以创建一个新的javascript函数,并将下拉列表id和json数据作为参数传递给它。
然后,您可以根据数据结构解析json数据。进一步运行循环并在select元素中添加项目。
答案 2 :(得分:0)
你可以在jQuery中使用getJSON
方法:
$.getJSON("ActionMethodName", "", function (data) {
$(data).each(function () {
$("<option>").val(this.ReworkTunnelName)
.text(this.Nome)
.appendTo("#ddl_items");
});
});
HTML:
<select id="ddl_items">
<option></option>
</select>
答案 3 :(得分:0)
试试这个
$.each(myJSONdata, function (index, item) {
$('#ddl_items').get(0).options[$('#ddl_items').get(0).options.length] = new Option(item.Text, item.Value);
});
答案 4 :(得分:0)
我最终这样做了,这很好......
$('#idRework').on('click', function () {
$.ajax({
url: url,
data: {},
type: 'post',
contentType: 'application/json; charset=utf-8',
success: function (myJSONdata) {
var obj = jQuery.parseJSON(myJSONdata);
$.each(obj.Root.ReworkTunnelName, function (index, itemData) {
ddl.append($('<option></option>').val(itemData).html(itemData));
});
}
});
});