简体   繁体   English

C#-从代码隐藏添加JavaScript函数

[英]c# - adding javascript function from codebehind

DBDataSet.tblAdsDataTable dtAds = client.getAdsDate(ref errCode, AdsType, AdsSlot, Country);
        string ss = "";
        string aa = "";
        if (dtAds.Rows.Count > 0)
        {
            foreach (DBDataSet.tblAdsRow dr in dtAds)
            {
                DateTime date = dr.AdsDate;
                string AdsDate = date.ToString("dd/MM/yyyy");

                ss += '"' + AdsDate + '"' +",";  
                aa = ss.TrimEnd(','); // equal to "01/01/2018","02/01/2018"

                string jquery = "var naArray = ["+ aa +"];";;
                ClientScript.RegisterStartupScript(typeof(Page), "a key","<script>" + jquery + "</script>");
            }
        }

Hi, from the code above, i would want to add javascript in code behind like <script> var naArray = ["01/01/2018","02/01/2018"];</script> . 嗨,从上面的代码,我想在<script> var naArray = ["01/01/2018","02/01/2018"];</script>类的代码后面添加javascript。 However, when i execute, it become <script> var naArray = ["01/01/2018"]; <script> 但是,当我执行时,它变为<script> var naArray = ["01/01/2018"]; <script> <script> var naArray = ["01/01/2018"]; <script> which "02/01/2018" is missing in the array. <script> var naArray = ["01/01/2018"]; <script>数组中缺少“ 02/01/2018”。 Appreciate if anyone can help on this. 感谢是否有人可以为此提供帮助。 Thanks. 谢谢。

You are setting value to jquery variable is inside the foreach loop. 您正在将值设置为foreach循环内的jquery变量。 It should be outside of the loop. 它应该在循环之外。 Try updating your code as below. 尝试如下更新代码。

DBDataSet.tblAdsDataTable dtAds = client.getAdsDate(ref errCode, AdsType, AdsSlot, Country);
string ss = "";
string aa = "";
if (dtAds.Rows.Count > 0)
{
    foreach (DBDataSet.tblAdsRow dr in dtAds)
    {
        DateTime date = dr.AdsDate;
        string AdsDate = date.ToString("dd/MM/yyyy");

        ss += '"' + AdsDate + '"' +",";                  
    }
    aa = ss.TrimEnd(','); // equal to "01/01/2018","02/01/2018"
    string jquery = "var naArray = ["+ aa +"];";;
    ClientScript.RegisterStartupScript(typeof(Page), "a key","<script>" + jquery + "</script>");
}
        string aa = "";

        foreach (DBDataSet.tblAdsRow dr in dtAds)
        {
            DateTime date = dr.AdsDate;
            string AdsDate = date.ToString("dd/MM/yyyy");

            aa += '"' + AdsDate + '"' + ","; // equal to "01/01/2018","02/01/2018"
        }

        aa = aa.TrimEnd(',');

Attach javascript outside your loop. 将JavaScript附加到循环之外。 Your value is changing in each iteration. 您的价值在每次迭代中都在变化。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM