【问题标题】:Javascript Array generated by ASP Repeater not updatedASP 中继器生成的 Javascript 数组未更新
【发布时间】:2015-04-05 01:23:30
【问题描述】:

我有一个中继器在客户端 javascript 中生成一个数组(用于谷歌地图标记)。它在第一次加载时工作正常,但是当我触发回发并将转发器与其他数据绑定时。中继器会将初始数组值返回给我的变量。有什么办法出错吗?请帮忙

<script type="text/javascript">
  Var markers = [];
    function LoadMarker() {
    markers = [];
    var data =[
    <asp:Repeater ID="rptMarkers" runat="server">
    <ItemTemplate>
                {
                "title": '<%# Eval("DeviceName") %>',
                "lat": '<%# Eval("Latitude") %>',
                "lng": '<%# Eval("Longitude") %>',
                "Origlat": '<%# Eval("OrigLatitude") %>',
                "Origlng": '<%# Eval("OrigLongitude") %>',
                "description": '<%# Eval("Description") %>',
                "Status": '<%# Eval("Status") %>',
                "Active": '<%# Eval("Active") %>'
            }
    </ItemTemplate>
    <SeparatorTemplate>
        ,
    </SeparatorTemplate>
    </asp:Repeater>];
    markers = data;

    }

【问题讨论】:

    标签: javascript asp.net arrays google-maps repeater


    【解决方案1】:

    Repeater 对我不起作用,但我找到了替代方法。来自使用 JavaScriptSerializer 序列化数据集的代码。然后将其解析为一个隐藏字段,供客户端代码访问。

    HTML

    <asp:HiddenField ID="hfSortOrder" runat="server" />
    

    JS

    var markers = [];
    markers = JSON.parse(document.get`enter code here`ElementById('<%= hfDummy.ClientID%>').value);
    for (i = 0; i < markers.length; i++) {
    var data = markers[i]
    //Do your stuff etc: var info = data.column1
    }
    

    VB.NET

        Dim dsdata As New DataSet
        Dim dt As New DataTable()
        Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
        Dim rows As New List(Of Dictionary(Of String, Object))()
        Dim row As Dictionary(Of String, Object)
    
    dsdata = ReadData()            
    
    For Each dr As DataRow In dt.Rows
    row = New Dictionary(Of String, Object)()
       For Each col As DataColumn In dt.Columns
          row.Add(col.ColumnName, dr(col))
       Next
    rows.Add(row)
    Next
    hfDummy.Value = serializer.Serialize(rows)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多