平时使用GridView的时候经常要给每行加一个复选框,然后还需要放置一个单独的全选复选框,通过单击它来让这些复选框全选或取消全选,每次实现这样的功能都要写一段javascript,麻烦,所以扩展它。
控件开发
1、新建一个继承自GridView的类。
/**/
///<summary>
///继承自GridView
///</summary>
[ToolboxData(
@"
<{0}:SmartGridViewrunat='server'></{0}:SmartGridView>
"
)]
public
class
SmartGridView:GridView
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
{
}
2、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
using
System;
using
System.Collections.Generic;
using
System.Text;
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
namespace
YYControls.SmartGridView
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///javascript
///</summary>
publicclassJavaScriptConstant
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
internalconststringjsCheckAll=@"<scripttype=""text/javascript"">
//<![CDATA[
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//隐藏字段的ID,用于存每组的全选复选框ID
varhdnAllName='[$AllName$]';
//隐藏字段的ID,用于存每的项复选框ID
varhdnItemName='[$ItemName$]';
//组分隔符,一个全选复选框和其对应的n个项复选框为一个组
vargroupSeparator='[$GroupSeparator$]';
//项分隔符,项复选框每个项之间的分隔符
varitemSeparator='[$ItemSeparator$]';
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
varstrAlls=GetObject(hdnAllName).value;
varstrItems=GetObject(hdnItemName).value;
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//全选复选框数组
vararyAlls=strAlls.split(groupSeparator);
//项复选框数组,每行有一个组的所有项复选框
vararyItems=strItems.split(groupSeparator);
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//全选复选框被单击,参数为该全选复选框这个对象
functionClickCheckAll(objAll)
{
//每个全选复选框
for(vari=0;i<aryAlls.length;i++)
{
//该全选复选框是所单击的全选复选框
if(aryAlls[i]==objAll.id)
{
//该全选复选框同组下的项复选框数组
aryItem=aryItems[i].split(itemSeparator);
for(varj=0;j<aryItem.length;j++)
{
//单击的全选复选框是选中状态,并且项复选框不是disabled,则选中
if(objAll.checked&&!GetObject(aryItem[j]).parentElement.disabled)
{
GetObject(aryItem[j]).checked=true;
}
//否则
else
{
GetObject(aryItem[j]).checked=false;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
break;
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//项复选框被单击
functionClickCheckItem()
{
//每组项复选框
for(vari=0;i<aryItems.length;i++)
{
//该组的所有项复选框数组
aryItem=aryItems[i].split(itemSeparator);
//标记,是否同组的项复选框都被选中
varbln=true;
for(varj=0;j<aryItem.length;j++)
{
//如果该项复选框没被选中,并且不是disabled,则bln设为false
if(!GetObject(aryItem[j]).checked&&!GetObject(aryItem[j]).parentElement.disabled)
{
bln=false;
break;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//bln为true,则设置同组的全选复选框为选中
if(bln)
{
GetObject(aryAlls[i]).checked=true;
}
//否则
else
{
GetObject(aryAlls[i]).checked=false;
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
functionGetObject(param)
{
returndocument.getElementById(param);
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
//]]>
</script>";
}
}
3、新建一个CheckboxAll类,有两个属性
using
System;
using
System.Collections.Generic;
using
System.Text;
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
using
System.ComponentModel;
using
System.Web.UI;
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
namespace
YYControls.SmartGridView
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///CheckboxAll的摘要说明。
///</summary>
[ToolboxItem(false)]
publicclassCheckboxAll
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
privatestring_checkboxAllID;
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///模板列全选复选框ID
///</summary>
publicstringCheckboxAllID
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
get
{return_checkboxAllID;}
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
set
{_checkboxAllID=value;}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
privatestring_checkboxItemID;
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///模板列项复选框ID
///</summary>
publicstringCheckboxItemID
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
get
{return_checkboxItemID;}
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
set
{_checkboxItemID=value;}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///ToString()
///</summary>
///<returns></returns>
publicoverridestringToString()
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
return"CheckboxAll";
}
}
}
4、新建一个继承自CollectionBase的类CheckboxAlls
using
System.Collections;
using
System.ComponentModel;
using
System.Web.UI;
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
namespace
YYControls.SmartGridView
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///CheckboxAlls的摘要说明。
///注意要继承自CollectionBase
///</summary>
[
ToolboxItem(false),
ParseChildren(true)
]
publicclassCheckboxAlls:CollectionBase
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///构造函数
///</summary>
publicCheckboxAlls()
:base()
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///实现IList接口
///获取或设置指定索引处的元素。
///</summary>
///<paramname="index">要获得或设置的元素从零开始的索引</param>
///<returns></returns>
publicCheckboxAllthis[intindex]
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
get
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
return(CheckboxAll)base.List[index];
}
set
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
base.List[index]=(CheckboxAll)value;
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///实现IList接口
///将某项添加到System.Collections.IList中。
///</summary>
///<paramname="item">要添加到System.Collections.IList的System.Object。</param>
publicvoidAdd(CheckboxAllitem)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
base.List.Add(item);
}
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
/**////<summary>
///实现IList接口
///从System.Collections.IList中移除特定对象的第一个匹配项。
///</summary>
///<paramname="index">要从System.Collections.IList移除的System.Object</param>
publicvoidRemove(intindex)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
if(index>-1&&index<base.Count)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
base.List.RemoveAt(index);
}
}
}
}
5、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第4步创建的那个CheckboxAlls
private
CheckboxAlls_checkboxAlls;
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
/**/
///<summary>
///复选框组集合一个组由一个全选复选框和多个项复选框组成
///</summary>
[
PersistenceMode(PersistenceMode.InnerProperty),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
Description(
"
复选框组集合一个组由一个全选复选框和多个项复选框组成
"
),
Category(
"
扩展
"
)
]
public
virtual
CheckboxAllsCheckboxAlls
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
{
get
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
{
if(_checkboxAlls==null)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
控件开发
1、新建一个继承自GridView的类。
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
2、新建一个JavaScriptConstant类,把我们要用到的javascript存在一个常量里
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
3、新建一个CheckboxAll类,有两个属性
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
4、新建一个继承自CollectionBase的类CheckboxAlls
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccb58340637af9ca4d4b6b6ea30e24ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
5、在继承自GridView的类中加一个复杂对象属性,该复杂对象就是第4步创建的那个CheckboxAlls
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ccbd986c91f635a453042b30aa76eae0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/44137fec8304cf51312de1b7a60db219.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7cc3f5b5668c85ca6aace071a80b8db4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d898453cc2e3322fb98c57f0769b87a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7bdb24272e3a75920cd395bba55a940.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7215e5dc034d64d577e86ec259a433c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0983631c94f91f46127173830193d710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2d3dcd930e21ddff286174fe47bba01e.png)