JS操作.NET中GridView控件

    技术2022-05-12  11

          众所周知,在.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;    }


    最新回复(0)