我正在做一个项目,我成功地通过 ajax 进行 Web 服务调用,返回数据,并将单行结果绑定到文本框。但是,在某些情况下,诸如帐户之类的字段可能具有多个值,并且在我的情况下已被索引。我可以对返回的结果进行硬编码并绑定它,但我需要动态地进行而不是硬编码,因为 Web 服务调用可能会根据提供给它的数据返回不同数量的行。这是一些代码:
function RetrieveEntity() {
var pageUrl1 = "ajaxwebservicecalls.asmx/RetrieveEntity";
$.ajax({
type: "POST",
url: pageUrl1,
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: OnretrieveSuccessCall,
error: onretrieveFail
});
}
function OnretrieveSuccessCall(msg) {
var defaultdata = msg.d.Data;
invoiceModel = defaultdata;
var x = JSON.stringify(defaultdata);
MyProject.viewModel = ko.mapping.fromJS(invoiceModel);
ko.applyBindings(MyProject.viewModel)
alert("hello");
}
(无需显示 webservice asmx 文件,因为该部分工作正常)返回的结果类似于以下内容:
header1.value = "abc"
header2.value = "efg"
所以当我将它绑定到文本框时,我所要做的就是调用 data-bind="value: header1.value" 并且效果很好
但是,多行结果以索引格式返回,如下所示:
Header1[(value1=xxx,value2=yyyy,value3=zzz),(value1=ddd,value2=fff,value3=fgghg)]
所以当我对它进行数据绑定(硬编码值)时,我使用了
data-bind="value:header1()[0].value1"
并返回“xxx”
我的问题是如果我想返回 value1 (xxx, ddd) 的所有答案并将它们绑定在网格上。我使用了一个模板字段网格,并在其中放置了一个文本框,并尝试使用它工作的硬编码索引来检索该值。但是当我想返回所有可能的值时(使用 #index 或 $data0 它不起作用。我不知道如何使用它,如果 ASP 甚至可以使用 knokcoutjs 绑定 gridview。请帮帮我. 下面是 HTMl 代码(我将只显示一个 gridview 字段,并且我正在使用有效的硬编码索引)。
<asp:GridView ID="GridView2" runat="server"AllowPaging="True"AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Account" SortExpression="Account" >
<ItemTemplate>
<asp:TextBox ID="Account" runat="server" MaxLength="60" ReadOnly="true"
TabIndex="-1" Style="width: 250px" data-bind="value:APInvoiceItems()[0].Accountnumber"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<button onclick=" RetrieveEntity()"> Update </button>
从上面的代码返回索引零处的帐号。如何返回索引1、2等?非常感谢所有帮助。先感谢您!!