autocompleteextender设置innerHtml后的空值

时间:2014-11-06 10:15:28

标签: c# html .net ajaxcontroltoolkit autocompleteextender

我有一个autocompleteextender,当我将innerHtml设置为从webservice接收的文本时,它可以正常工作,我可以在selectedItem函数上捕获该文本的选定值。但是当我在childnode的innerHtml中设置一些HTML元素时,我在selectedItem函数上丢失了该节点的值(要记住我可以在OnClientPopulated函数上看到设置值!)。

这里是OnClientPopulated

function PopulateDataForAce_Locations(sender) {
            $("#tbxLocation").css("background-image", "none");

            var comletionList = $find("aceYer").get_completionList();
            for (var i = 0; i < comletionList.childNodes.length; i++) {
                var data = JSON.parse(comletionList.childNodes[i].innerText);
                var image = data[0];
                var imageClass = "";
                var textClass = "";
                if (data[1].indexOf("##") > -1 || comletionList.childNodes[i]._value == "0000") {
                    imageClass = "imageStyleIlce";
                    textClass = "textStyleIlce";
                }
                else {
                    imageClass = "imageStyleIl";
                    textClass = "textStyleIl";
                }
                var text = data[1].replace("##", "");
                var text2 = data[2];

              // comletionList.childNodes[i].innerHTML = "<font class=\"" + textClass + "\">" + text + "</font>";
                comletionList.childNodes[i].innerHTML =  text;
            }
        }

当我使用评论行时,我失去了节点的价值。 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

我发现获取所选项目功能的唯一方法是

 function aceLocation_itemSelected(sender, e) {
            var index = $find("aceYer")._selectIndex;
            var _item = $find("aceYer").get_completionList().childNodes[index];
            var hfYer = $get('<%= hfYer.ClientID %>');
            hfYer.value = _item._value; 
        }

虽然e.get_value()不适用于html项目。