JS操作.NET中GridView控件

来源:互联网 发布:python ctypes 数组 编辑:程序博客网 时间:2024/05/10 20:17

      众所周知,在.NET开发中如果把代码都写在后台,每块进行操作的功能代码都会使页面进行刷新,所以为避免不必要的页面刷新,就需要使用JS来进行操作。比如说为GridView的每一行添加一个CheckBox,在外面放置一个按钮,通过选择GridView中的CheckBox,来获取选中行的数据,如果拖的是Server端的按钮,那么自然会引起页面的刷新,而现在只是需要取的是GridView中的数据,没有必要再与服务端打交道,所以就只有拖HTML的按钮了,然后使用JS对GridView进行操作。

      先贴两张图上来看看:第一张便是JS实现的操作,第二张是后台代码实现的操作。

      我在GridView中分别放了一般的HTML和runat="server"的CheckBox控件,然后在下面又分别放了一般的HTML和runat="server"的Button控件,用以区分。

      下面是怎样操作GridView的JS代码:

<script language="javascript">
            function MsgSelect() {
                var strmsg = "";
                var count = 0;  //用来判断当前选择了几行

                //用JavaScript DOM的document.all可以获取到页面上所有元素,继而去获取到GridView1
                for (var i = 1; i < document.all.GridView1.rows.length; i++) {
                //条件是从该GridView得第2行开始,小于它的行的总数,因为该GridView控件有表头一行
                    if (document.all.GridView1.rows[i].cells[4].children(0).checked) {
                    //获取到GridView1第i行5列的checkbox控件,判断它的checked属性
                        count++;
                        if (count == 1)  //如果当前选择了1行,则只取得该行中需要显示的数据
                            strmsg += "“" +document.all.GridView1.rows[i].cells[1].innerText+ "”";//得到i行2列的值
                        if (count > 1 && count < document.all.GridView1.rows.length)
                        //如果选择了1行以上,则在后一行的前面加上一个“和”字
                            strmsg += "和“" + document.all.GridView1.rows[i].cells[1].innerText + "”";
                    }
                }
                if (strmsg == "")  //判断strmsg发生变化没有,也就是说有没有进行选择
                    document.all.Label9.innerText = "你什么都没有选择!";

                     //还是用document.all找到页面上的标签,然后用innerText属性修改它的文本
                else
                    document.all.Label9.innerText = "你选择了" + strmsg; 
            }

 </script>

 

      下面是Server端Button的单击事件代码:

 protected void Button2_Click(object sender, EventArgs e)
    {
        String strmsg = "";
        int count = 0;
        CheckBox ckbox;
        for (int i=0;i<GridView1.Rows.Count;i++)
        {
            ckbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox3"); //找到checkbox控件
            if (ckbox.Checked)
            {
                count++;
                if(count==1)
                    strmsg += "“"+GridView1.Rows[i].Cells[1].Text.ToString().Trim()+"”";
                if(count>1 && count<GridView1.Rows.Count)
                    strmsg += "和“" + GridView1.Rows[i].Cells[1].Text.ToString().Trim() + "”";
            }
        }
        if (strmsg == "")
            Label9.Text = "你什么都没有选择!";
        else
            Label9.Text = "你选择了"+strmsg;
    }

原创粉丝点击