当前位置:编程学习 > C#/ASP.NET >>

asp.net 程序中 前台javascript 二维数组问题

我做的是一个在线考试系统-遇到了选题时处理javascript 中二维数组与后台间的通信问题,问题描述如下:

1、在界面中有一个由Gridview生成的表(数据从数据中取到的),同时表中复选框(CheckBox1 用来标识选择题目)有一个javascript 的点击事件(selectRubric)其中事件中有两个二维数组(arr、arr2) 同时还有一个下拉列表( DropDownList1 用来获取题目来源)  

 部分代码: 

<asp:CheckBox ID="CheckBox1" runat="server"    onclick="selectRubric(this)"/>

<asp:DropDownList ID="DropDownList1"runat="server" OnDataBound="DropDownList1_DataBound"  AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">         </asp:DropDownList>

<script type="text/javascript">
        var arr=new Array();
        var arr2=new Array();
        var clickNum=0;
        function selectRubric(checkObject)
        {

2、在第一次加载页面的情况下每次选中一个复选框(非同一个)二维数组也增加一个值-为的是保存题目与分数(图:分数那列没有截取出来)

部分代码:

    <script type="text/javascript">
        var arr=new Array();
        var arr2=new Array();
        function selectRubric(checkObject)
        {
            var father=null,index=null,count=0,Num=0;
            father=checkObject.parentElement;
            father=father.parentElement;
            father=father.children;  
            if(checkObject.checked==true)
            {  
                for(var i=0;i<arr.length;i++)
                {
                     if(arr[i][0]==father[2].innerText)
                     {
                         index="true";
                         arr2[i]=arr[i];
                         break;
                     }
                }
                if(index==null)
                {
                    arr[arr.length]=[father[2].innerText,father[3].innerText];
                    arr2[arr2.length]=arr[arr.length-1];
                }  
            }
            else
            {
                for(var i=0;i<arr.length;i++)
                {  
                    if(arr[i][0]==father[2].innerText)
                    {
                        arr2[i]=null;
                     }
                }
            }
            for(var i=0;i<arr2.length;i++)
            {
                if(arr2[i]!=null)
                {  
                    count=count+1;
                    Num=parseInt(arr2[i][1])+Num;
                }
            }
            document.getElementById("NumTextBox").value="已选题数:"+count+"  分数:"+Num;
            document.getElementById("NumTextBoxHidd").value="已选题数:"+count+"  分数:"+Num;
         }
    </script>

3、改变拉列表的值则页面重新加载,问如何将前页面的两个数组保存到后台且又从后台传递到前台javascript 的LoadSelectRubric事件中用于如果前面已选了的题目则默认为选中状态?

部分代码:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
 {

       // 后台中如何获取前台javascript 事件selectRubric 中的两个二维数组 arr、arr2

}

function selectRubric(checkObject)
 {

      // 前台中如何获取前面中 arr、arr2等同的二维数组

}

运行可以的话再加分!

答案:后台中如何获取前台javascript 事件selectRubric 中的两个二维数组 arr、arr2

这个可以用 隐藏控件解决

 

前台中如何获取前面中 arr、arr2等同的二维数组

前台获取就更容易了

 

想写详细点,就是分数太低啊!呵呵呵呵……

上一个:asp.net程序里的DBHelper 高手进
下一个:asp.net程序运行时提示文件不存在

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,