【问题标题】:Display the result of a method in a Listbox在列表框中显示方法的结果
【发布时间】:2016-02-21 11:05:53
【问题描述】:

我创建了一个 WCF 项目,我试图在列表框中显示一些信息。我希望当我单击一个按钮时,它会调用我的方法并将其显示在列表框中。我的方法工作正常,但我无法在我的列表框中显示它。这是我正在尝试的代码:

        $('#btnListBlob').click(function () {
            $.ajax({
                type: "POST",
                url: 'http://localhost:50525/BlobService.svc/ListBlob',
                data: JSON.stringify(),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                processData: true,
                success: function (data) {
                    $(data).appendTo('#blobList')
                    alert('listed');
                },
                error: function (data) {
                    alert('Some error Occurred!');
                }
            });
        });

我希望在我的 URL 中调用的方法显示在我的#blobList 中。

【问题讨论】:

    标签: javascript jquery visual-studio wcf listbox


    【解决方案1】:

    您可能想查看要附加的数据。数据应采用以下形式:

    <option value="5">item 5</option>
    

    请记住,您是在附加 HTML,而不仅仅是附加数据。

    我会说放置一个 console.log 并尝试调试从服务器接收到的数据。

    $('#btnListBlob').click(function () {
            $.ajax({
                type: "POST",
                url: 'http://localhost:50525/BlobService.svc/ListBlob',
                data: JSON.stringify(),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                processData: true,
                success: function (data) {
    

    console.log(数据)

                    $(data).appendTo('#blobList')
                    alert('listed');
                },
                error: function (data) {
                    alert('Some error Occurred!');
                }
            });
        });
    

    【讨论】:

      【解决方案2】:

      只是一些您可能会觉得有用的建议:

      // only update the dom on click
      // also use the new on() method
      $('#btnListBlob').on("click", function () {
          $("#blobList").html(processData())
      });
      
      // separate the call and data processing
      var serverData = {"fakeServerData":[
          {"data": "test data 1"},
          {"data": "test data 2"}
      ]};
      
      function processData(){
          var options ="";
          for( var i = 0 ; i < serverData.fakeServerData.length ; i++){
              options += "<option>" + serverData.fakeServerData[i].data + "</option>";
          }
      
          return options;
      }
      

      希望对你有帮助,祝你好运!

      【讨论】:

      • 我真的不明白你做了什么以及我应该如何用这个来调用我的方法:/你能更具体一点吗?谢谢
      • 我的意思是不要试图在那次点击上做所有事情。成功时使用 processData()。我刚刚模拟了一个 AJAX 调用,其中 serverData 是该调用的结果对象。这是fiddle。随意在这个小提琴的基础上向我展示你想要实现的目标。
      猜你喜欢
      • 2018-05-11
      • 2013-09-01
      • 2015-10-15
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多