本篇将讲述如何解决GridView控件中使用CheckBox控件无法保存状态问题。由于我们开发的CheckBox控件在GridView控件的外部使用时可以保存状态,所以我的解决方案是:另外开发一个控件,用来保存在GridView控件中的CheckBox控件的状态。我将其命名为CheckBoxHidden控件。控件代码如下:
 1实现GridView控件的删除多条记录功能系列(3)using System;
 2实现GridView控件的删除多条记录功能系列(3)using System.Web.UI;
 3实现GridView控件的删除多条记录功能系列(3)using System.Web.UI.WebControls;
 4实现GridView控件的删除多条记录功能系列(3)
 5实现GridView控件的删除多条记录功能系列(3)namespace HughLin.Web.UI.WebControls
 6}
    同时,应修改第一篇的CheckBox.js文件,增加如下两个函数:
 1实现GridView控件的删除多条记录功能系列(3)function AspNetV2_RestoreCheckBoxGroupValue(group, clientId)
 2实现GridView控件的删除多条记录功能系列(3){
 3实现GridView控件的删除多条记录功能系列(3)    var objArray;
 4实现GridView控件的删除多条记录功能系列(3)    try
 5实现GridView控件的删除多条记录功能系列(3)    {
 6实现GridView控件的删除多条记录功能系列(3)        objArray = eval(group);
 7实现GridView控件的删除多条记录功能系列(3)    }
 8实现GridView控件的删除多条记录功能系列(3)    catch (e)
 9实现GridView控件的删除多条记录功能系列(3)    {
10实现GridView控件的删除多条记录功能系列(3)        return;
11实现GridView控件的删除多条记录功能系列(3)    }
12实现GridView控件的删除多条记录功能系列(3)    if (objArray == null || objArray.length == 0)
13实现GridView控件的删除多条记录功能系列(3)    {
14实现GridView控件的删除多条记录功能系列(3)        return;
15实现GridView控件的删除多条记录功能系列(3)    }
16实现GridView控件的删除多条记录功能系列(3)    var flag = false;
17实现GridView控件的删除多条记录功能系列(3)    var objArray2 = document.getElementById(clientId);
18实现GridView控件的删除多条记录功能系列(3)    if (objArray2 == null || objArray2.value.length == 0)
19实现GridView控件的删除多条记录功能系列(3)    {
20实现GridView控件的删除多条记录功能系列(3)        flag = true;
21实现GridView控件的删除多条记录功能系列(3)    }
22实现GridView控件的删除多条记录功能系列(3)    if (flag)
23实现GridView控件的删除多条记录功能系列(3)    {
24实现GridView控件的删除多条记录功能系列(3)        for (var i = 0; i < objArray.length; i++)
25实现GridView控件的删除多条记录功能系列(3)        {
26实现GridView控件的删除多条记录功能系列(3)            var e = objArray[i];
27实现GridView控件的删除多条记录功能系列(3)            e.checked = false;
28实现GridView控件的删除多条记录功能系列(3)        }
29实现GridView控件的删除多条记录功能系列(3)    }
30实现GridView控件的删除多条记录功能系列(3)    else
31实现GridView控件的删除多条记录功能系列(3)    {
32实现GridView控件的删除多条记录功能系列(3)        var objArray3 = objArray2.value.split(",");
33实现GridView控件的删除多条记录功能系列(3)        for (var i = 0; i < objArray.length; i++)
34实现GridView控件的删除多条记录功能系列(3)        {
35实现GridView控件的删除多条记录功能系列(3)            var e = objArray[i];
36实现GridView控件的删除多条记录功能系列(3)            var flag1 = (objArray3[i].toLowerCase() == "true"? true : false;
37实现GridView控件的删除多条记录功能系列(3)            e.checked = flag1;
38实现GridView控件的删除多条记录功能系列(3)        }
39实现GridView控件的删除多条记录功能系列(3)    }
40实现GridView控件的删除多条记录功能系列(3)}
41实现GridView控件的删除多条记录功能系列(3)
42实现GridView控件的删除多条记录功能系列(3)function AspNetV2_SaveCheckBoxGroupValue(group, clientId)
43实现GridView控件的删除多条记录功能系列(3){
44实现GridView控件的删除多条记录功能系列(3)    var objArray;
45实现GridView控件的删除多条记录功能系列(3)    try
46实现GridView控件的删除多条记录功能系列(3)    {
47实现GridView控件的删除多条记录功能系列(3)        objArray = eval(group);
48实现GridView控件的删除多条记录功能系列(3)    }
49实现GridView控件的删除多条记录功能系列(3)    catch (e)
50实现GridView控件的删除多条记录功能系列(3)    {
51实现GridView控件的删除多条记录功能系列(3)        return;
52实现GridView控件的删除多条记录功能系列(3)    }
53实现GridView控件的删除多条记录功能系列(3)    if (objArray == null || objArray.length == 0)
54实现GridView控件的删除多条记录功能系列(3)    {
55实现GridView控件的删除多条记录功能系列(3)        return;
56实现GridView控件的删除多条记录功能系列(3)    }
57实现GridView控件的删除多条记录功能系列(3)    var objValues = objArray[0].checked;
58实现GridView控件的删除多条记录功能系列(3)    for (var i = 1; i < objArray.length; i++)
59实现GridView控件的删除多条记录功能系列(3)    {
60实现GridView控件的删除多条记录功能系列(3)        var e = objArray[i];
61实现GridView控件的删除多条记录功能系列(3)        objValues += "," + objArray[i].checked;
62实现GridView控件的删除多条记录功能系列(3)    }
63实现GridView控件的删除多条记录功能系列(3)    document.getElementById(clientId).value = objValues;
64实现GridView控件的删除多条记录功能系列(3)}

    同样我们将其编译到HughLin.dll中。
    使用是我们只需要在第二篇中的代码中加入:
    <hlAsp:CheckBoxHidden ID="CheckBoxHidden1" runat="server" Group="UserCheckBoxGroup1" />
    注意:Group应当和你的CheckBox控件的Group要相同。

    本系列中开发的CheckBox控件有一个好处就是:可以同时在多个GridView中使用,而互相不会干扰,只需设置Group的值不同即可。当然要保存多个GridView的CheckBox控件的状态,必须添加相应的ChekBoxHidden控件。

相关文章:

  • 2022-03-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2022-12-23
  • 2021-06-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2021-06-09
  • 2022-12-23
  • 2021-10-09
相关资源
相似解决方案