如何在C#创建的JavaScript中从数据表中检查字段的值?

时间:2019-01-15 15:33:40

标签: javascript c# asp.net powerbi asp.net-4.5

我在C#中有一个DataTable对象,我将该对象传递给JavaScript中的aspx类,如下所示。在JavaScript中,我遍历了PowerBI报告的页面。我需要做的就是比较PageLists(来自c#)是否包含page.DisplayName并基于此进行一些处理。请参见下面的代码:

C#:

DataTable PagesList = null; //(this is globally defined)
...
protected void Page_Load(object sender, EventArgs e)
{
   PagesList = sql.QueryDataTable(String.Format("select PageLabel, DefaultPage from myTable where ReportID = '{0}';",ReportID));
}

JavaScript:

<script>
   var pageslist = "<%=PagesList%>";
   alert(pageslist); //This pops up: "Table"

   report.getPages().then(function (pages) {  
        var allpages = ''
        pages.forEach(function(page) { 
            if(pageslist.includes(page.displayName) > -1) //this is not working properly
            {  
               allpages = allpages+'<button type="button" onclick=setPage(\''+page.name+'\')>'  + page.displayName+'</button>';
            }
        });
        ...
        ...

在这里,如果part总是返回false,它就无法正常工作。在这种情况下,检查pageslist是否包含page.displayName的最佳方法是什么?如何接收页面列表中的项目?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在使用includes,它们返回truefalse,因此您不需要此部分:> -1。您可以更改条件:

 if(pageslist.includes(page.displayName)) 

或者您可以使用indexOf

 if(pageslist.indexOf(page.displayName) > -1)