我正在开发一个项目,我通过ajax成功地进行了web服务调用,返回了数据,并将单行结果绑定到文本框。但是,在某些情况下,诸如account等字段可能具有多个值,并在我的情况下编入索引。我能够硬编码返回的结果并绑定它,但我需要动态地做它而不是硬编码,因为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");
}
(无需显示web服务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它不起作用。我不知道如何使用它,如果甚至可以使用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等等? 非常感谢所有帮助。提前谢谢!!
答案 0 :(得分:0)
那是不可能的。 GridVew是一个服务器控件,因此您只能在服务器上将数据绑定到它。考虑使用一些JavaScript模板引擎,如jsRender,doT,Underscore等,从服务响应中创建布局。