动态插入JavaScript幻灯片Asp.net C#

时间:2015-05-28 18:49:54

标签: javascript c# jquery asp.net

我正在尝试使用这个JavaScript幻灯片,但它不是动态的,我需要它动态。通常,我只会使用ASP中继器;但是脚本需要一个图像数组,如下所示:

    imagearray: [
        ['<%= ResolveUrl("~/Images/Slide/1.jpg") %>'],
        ['<%= ResolveUrl("~/Images/slide/2.jpg") %>']

我需要从sql db加载,所以我想也许:

    imagearray: [
        ['<%: getJson() %>']

然后在c#中我试图做这样的事情:

    public string getJson()
    {
        string programId = Request.QueryString["ProgramId"];
        DataTable dt = CatalogAccess.GetProgramImages(programId);
    }

这是我真的陷入困境的地方。我想也许我可以在数据表中返回我的FileNames然后将它们转换为对象数组?

    public string getJson()
    {
        string programId = Request.QueryString["ProgramId"];
        DataTable dt = CatalogAccess.GetProgramImages(programId);
        dt.Columns.Add("FileName", typeof(string));
        for (int i = 1; i < 10; i++)
        {
            DataRow dr = dt.NewRow();
            dr["FileName"] = "~/Images/Slide/" + i.ToString();
            dt.Rows.Add(dr);
        }

        ArrayList arrayList = new ArrayList();
        //create arraylsit from DataTable
        foreach (DataRow dr in dt.Rows)
        {
            arrayList.Add(dr["FileName"]);
        }
        return arrayList;
    }

显然,这不起作用;我甚至不确定我是否正确地接近了这一点。

另外,为了能够从db返回FileNames,我需要能够在c#中添加文件路径(这就是我尝试将其添加到数据行的原因)。然后将所有这些字符串添加到我的JavaScript数组中。

任何帮助,都会非常感激;如果我偏离轨道,请不要犹豫,并告诉我正确的方向。

1 个答案:

答案 0 :(得分:2)

让我们回顾一下:

看着:

Console.WriteLine (new JavaScriptSerializer().Serialize( (new ArrayList(){1,2,3,}) ));

将屈服:

[1,2,3] 为字符串

所以更改代码以返回

return new JavaScriptSerializer().Serialize(arrayList);

而不是

 return arrayList;

然后改变:

imagearray: [
    ['<%: getJson() %>']

imagearray: <%: getJson() %>;