-1
<script type="text/javascript">
function CheckData(e) {

                var form = e.form;
                var dataItem = e.dataItem;

                var r = <%=Session["count"] %>;
                var s = [];
                var t = [];

                for (i=1;i<r;i++)
                {
                    s.push(<%=Session["level"+i] %>;

                }
                for(i=1;i<r;i++)
                {
                    t.push(<%=Session["level"+i+"val"] %>
                }

                if(e.mode="edit")
                {

                }
            }
    </script>

我尝试将会话与 JavaScript 中的变量结合起来,但我的会话具有动态会话,当我尝试构建时,此代码会出错。

4

2 回答 2

4

没有。除非您在名为i. 您需要将该循环完全放在服务器上。就像是:

List<int> s = new List<int>();
for (int i = 0; i < r; i++)
{
    s.Add((int)Session["level" + i]);
}

然后在您的客户端代码中:

var s = [<%= string.Join(",", s) %>];
于 2012-10-01T03:07:00.797 回答
0

尝试这个:

<%
System.Text.StringBuilder sJscriptArray = new StringBuilder();
System.Text.StringBuilder sJscriptVals = new StringBuilder();
for (int i = 0; i < Convert.ToInt32(Session["count"]); i++)
{
    if (sJscriptArray.Length > 0)
    {
        sJscriptArray.Append(", ");
        sJscriptVals.Append(", ");
    }
    sJscriptArray.Append(Session[String.Concat("level", i)]);
    sJscriptVals.Append(Session[String.Concat("level", i, "val")]);

}
%>

<script type="text/javascript">
function CheckData(e) {
    var form = e.form;
    var dataItem = e.dataItem;

    var s = [ <%= sJscriptArray.ToString() %> ];
    var t = [ <%= sJscriptVals.ToString() %>];
    var r = s.length;

    if(e.mode="edit")
    {

    }
}
</script>
于 2012-10-01T03:26:26.177 回答