簡體   English   中英

嘗試循環遍歷linq查詢結果並在js代碼中顯示

[英]Trying to loop through linq query results and display in js code

我正在使用Google Maps API在網頁上顯示位置。 我已經使用靜態位置進行工作,如下面的js代碼所示。 我已經將確切的位置放入sql表中,而是想通過使用表而不是硬編碼位置來顯示位置。 基本上我想遍歷我的linq結果,並在javascript代碼中顯示出來。 所以var location =(我的結果集)我知道我的代碼還很遙遠,但是認為這將有助於顯示我要完成的工作。 任何幫助,將不勝感激! 謝謝

protected void Page_Load(object sender, EventArgs e)
    {
        using (var db = new DataClasses1DataContext())
        {
            var place = (from p in db.Coordinates
                         select new {locName = p.LocationName, 
                             Coord1 = p.Coordinate1,  
                             Coord2 = p.Coordinate2}).ToList();

            //List<string> listPlaces = new List<string>();

            foreach (var result in place)
            {
                string name = place.locName;
                bool Coordinate1 = place.Coord1;
                bool Coordinate2 = place.Coord2;
            }
        }
    }

    <script type="text/javascript">
    var locations =
        ['Bondi Beach', -33.890542, 151.274856],
        ['Coogee Beach', -33.923036, 151.259052],
        ['Cronulla Beach', -34.028249, 151.157507],
        ['Manly Beach', -33.80010128657071, 151.28747820854187],
        ['Maroubra Beach', -33.950198, 151.259302]
    ];

編輯:我確實使它能夠正確處理表中的第一條記錄,但最終結果需要是所有行。

C#:var place =(從db.Coordinates中的p,其中p.LocationName ==“ Adam”選擇p).FirstOrDefault(); 名稱= place.LocationName; coord1 = place.Coordinate1.Value; coord2 = place.Coordinate2.Value;

Javascript:var name2 =“ <%= name%>”; varordinate1 =“ <%= coord1%>”; varordinate2 =“ <%= coord2%>”;

您有很多選擇:將其構建為字符串,在對象上使用JsonSeralizer,對方法進行AJAX調用以獲取JSON,還有許多其他選擇...

對我來說,將其構建為字符串是一種簡單的方法(對於具有這種復雜性和大小的對象):

在aspx頁面上:

<script type="text/javascript">
var locations = <asp:literal id="locations" runat="server" />;
</script>

碼:

StringBuilder sb = new StringBuilder();
bool isFirst = true;
foreach (var result in place)
{
    if (!isFirst)
    {
        sb.Append(",");
    }
    isFirst = false;

    //Add the item data
    sb.AppendFormat("['{0}', {1}, {2}]", result.locName, result.Coord1, result.Coord2);
}
locations.Text = sb.ToString();

您還可以使用Page.ClientScript.RegisterClientScriptBlock將腳本以更動態的方式添加到頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM