0

我以前没有在 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 的帮助下用名称填充下拉列表。请帮忙

4

5 回答 5

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));
 });
于 2013-10-28T12:11:57.347 回答
0

尝试这个

$.each(myJSONdata, function (index, item) {  
   $('#ddl_items').get(0).options[$('#ddl_items').get(0).options.length] = new Option(item.Text, item.Value);
});
于 2013-10-28T12:28:02.303 回答
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));

                    });

                }
            });
        });
于 2013-10-28T12:38:07.970 回答
0

您可以getJSON在 jQuery 中使用方法:

$.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>
于 2013-10-28T12:24:13.320 回答
0

您可以创建一个新的 javascript 函数并将下拉 id 和 json 数据作为参数传递给其中。

然后你可以根据你的数据结构解析 json 数据。进一步运行一个循环并在选择元素中添加项目。

于 2013-10-28T12:08:24.550 回答