1

在这里,我创建了 Web 服务并提供了用于从数据中获取数据的公共 URL。我在 Office 365 开发人员预览(NAPA)default.htm 页面中编写了以下代码。

<!DOCTYPE html>
 <html>
 <head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>DemoApplication</title>
<link rel="stylesheet" type="text/css" href="../Content/Office.css" />
<!-- Add your CSS styles to the following file -->
<link rel="stylesheet" type="text/css" href="../Content/App.css" />
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<script src="https://appsforoffice.microsoft.com/lib/1.0/hosted/office.js"></script>
<!-- Add your JavaScript to the following file -->
<script src="../Scripts/App.js"></script>
 </head>
 <body onload="GetData()">
    <select id="CbxArea" style="width: 200px">
    <option>Select Area</option>
    </select>
    <input type="button" value="submit" id="btnsubmit"/>        
</div>
  </body>
 </html>

闲置代码写在 app.js 文件中

Office.initialize = function (reason) {    
};
function GetArea(){
var ddlArea = $("#CbxArea");
        $.ajax({
            type: "POST",
            url: "http://192.168.3.252:8081/HaraveerWCF/ExcelDataService.asmx/GetAreaNames",
            contentType: "application/json; charset=utf-8",
            //url:"ExcelDataService.asmx/GetAreaNames",
            dataType: "json",
            success: function (data) {
            for (i = 0; i < data.d.length; i++) {
                ddlArea.append($("<option></option>").val(data.d[i].AreaName).html(data.d[i].AreaName));
                }
            },
            failure: function (msg) {
                alert(msg);
            }
        });
}

我在哪里写错了。请帮帮我。确保总代码只写在在线 Office 365 门户帐户中。不是在 Visual Studio 中编写的。

4

3 回答 3

0

你已经做了一点点,我们可以说override选项 html。您正在放置每个选项的值和文本:

for (i = 0; i < data.d.length; i++) {
  ddlArea.append($("<option></option>").val(data.d[i].AreaName)
                                       .text(data.d[i].AreaName));
}

您可以通过以下方式实现$.each()

$.each(data.d, function(i, v){
  ddlArea.append("<option></option>").val(v[i].AreaName).text(v[i].AreaName);
});
于 2013-02-01T11:08:00.647 回答
0

使用 jQuery 1.4+,你可以这样做

for (i = 0; i < data.d.length; i++) {
   ddlArea.append($('<option/>', { value : data.d[i].AreaName }).text(data.d[i].AreaName);
}    
于 2013-02-01T10:17:28.167 回答
0

在您尝试从 Office 365 预览版站点访问远程地址时,您可能遇到了 JavaScript 跨域数据访问问题。如果对远程地址的请求的返回类型是 JSONP,那么您也许可以覆盖跨域数据访问问题。

如果远程服务器 URL 返回任何 JSONP 数据,请检查您的浏览器开发工具(使用 F12 键盘快捷键调用它然后查看网络选项卡)或 Firefox Firebug。

于 2013-02-20T10:29:34.877 回答