<HTML><HEAD><TITLE>DataGrid和CheckBox的混合
使用:::http://www.booro.com</TITLE>
<SCRIPTlanguage=JavaScript>
helpstat=false;
stprompt=true;
basic=false;
functionthelp(swtch){
if(swtch==1){
basic=false;
stprompt=false;
helpstat=true;
}elseif(swtch==0){
helpstat=false;
stprompt=false;
basic=true;
}elseif(swtch==2){
helpstat=false;
basic=false;
stprompt=true;
}
}
functionAddText(NewCode){
document.myform.txtcontent.value+=NewCode
}
functionemail(){
if(helpstat){
alert("Email标记\n插入Email超级链接\n用法1:[email]web@booro.com[/email]\n用法2:
[email=web@booro.com特鸟飞勤[/email]");
}elseif(basic){
AddTxt="[email][/email]";
AddText(AddTxt);
}else{
txt2=prompt("链接显示的文字.\n如果为空,那么将只显示你的Email地址","");
if(txt2!=null){
txt=prompt("Email地址.","stskyweb@21cn.com");
if(txt!=null){
if(txt2==""){
AddTxt="[email]"+txt+"[/email]";
}else{
AddTxt="[email="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/email]";
}
AddText(AddTxt);
}
}
}
}
functionflash(){
if(helpstat){
alert("Flash动画\n插入Flash动画.\n用法:[flash]Flash文件的地址[/flash]");
}elseif(basic){
AddTxt="[flash][/flash]";
AddText(AddTxt);
}else{
txt=prompt("Flash文件的地址","http://");
if(txt!=null){
AddTxt="[flash]"+txt;
AddText(AddTxt);
AddTxt="[/flash]";
AddText(AddTxt);
}
}
}
functionshowsize(size){
if(helpstat){
alert("文字大小标记\n设置文字大小.\n可变范围1-6.\n1为最小6为最大.\n用法:[size="+size+"]这是"+size+"文字[/size]");
}elseif(basic){
AddTxt="[size="+size+"][/size]";
AddText(AddTxt);
}else{
txt=prompt("大小"+size,"文字");
if(txt!=null){
AddTxt="[size="+size+"]"+txt;
AddText(AddTxt);
AddTxt="[/size]";
AddText(AddTxt);
}
}
}
functionbold(){
if(helpstat){
alert("加粗标记\n使文本加粗.\n用法:[b]这是加粗的文字[/b]");
}elseif(basic){
AddTxt="[b][/b]";
AddText(AddTxt);
}else{
txt=prompt("文字将被变粗.","文字");
if(txt!=null){
AddTxt="[b]"+txt;
AddText(AddTxt);
AddTxt="[/b]";
AddText(AddTxt);
}
}
}
functionitalicize(){
if(helpstat){
alert("斜体标记\n使文本字体变为斜体.\n用法:[i]这是斜体字[/i]");
}elseif(basic){
AddTxt="[i][/i]";
AddText(AddTxt);
}else{
txt=prompt("文字将变斜体","文字");
if(txt!=null){
AddTxt="[i]"+txt;
AddText(AddTxt);
AddTxt="[/i]";
AddText(AddTxt);
}
}
}
functionquote(){
if(helpstat){
alert("引用标记\n引用一些文字.\n用法:[quote]引用内容[/quote]");
}elseif(basic){
AddTxt="[quote][/quote]";
AddText(AddTxt);
}else{
txt=prompt("被引用的文字","文字");
if(txt!=null){
AddTxt="[quote]"+txt;
AddText(AddTxt);
AddTxt="[/quote]";
AddText(AddTxt);
}
}
}
functionshowcolor(color){
if(helpstat){
alert("颜色标记\n设置文本颜色.任何颜色名都可以被使用.\n用法:[color="+color+"]颜色要改变为"+color+"的文字[/color]");
}elseif(basic){
AddTxt="[color="+color+"][/color]";
AddText(AddTxt);
}else{
txt=prompt("选择的颜色是:"+color,"文字");
if(txt!=null){
AddTxt="[color="+color+"]"+txt;
AddText(AddTxt);
AddTxt="[/color]";
AddText(AddTxt);
}
}
}
functioncenter(){
if(helpstat){
alert("对齐标记\n使用这个标记,可以使文本左对齐、居中、右对齐.\n用法:[align=center|left|right]要对齐的文本[/align]");
}elseif(basic){
AddTxt="[align=center|left|right][/align]";
AddText(AddTxt);
}else{
txt2=prompt("对齐样式\n输入'center'表示居中,'left'表示左对齐,'right'表示右对齐.","center");
while((txt2!="")&&(txt2!="center")&&(txt2!="left")&&(txt2!="right")&&(txt2!=null))
{
txt2=prompt("错误!\n类型只能输入'center'、'left'或者'right'.","");
}
txt=prompt("要对齐的文本","文本");
if(txt!=null){
AddTxt="\r[align="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/align]";
AddText(AddTxt);
}
}
}
functionhyperlink(){
if(helpstat){
alert("超级链接标记\n插入一个超级链接标记\n使用方法:[url]http://www.aspsky.net[/url]\nUSE:
[url=http://www.aspsky.net]链接文字[/url]");
}elseif(basic){
AddTxt="[url][/url]";
AddText(AddTxt);
}else{
txt2=prompt("链接文本显示.\n如果不想使用,可以为空,将只显示超级链接地址.","");
if(txt2!=null){
txt=prompt("超级链接.","http://");
if(txt!=null){
if(txt2==""){
AddTxt="[url]"+txt;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}else{
AddTxt="[url="+txt+"]"+txt2;
AddText(AddTxt);
AddTxt="[/url]";
AddText(AddTxt);
}
}
}
}
}
functionimage(){
if(helpstat){
alert("图片标记\n插入图片\n用法:[img]http://www.aspsky.net/logo.gif[/img]");
}elseif(basic){
AddTxt="[img][/img]";
AddText(AddTxt);
}else{
txt=prompt("图片的URL","http://");
if(txt!=null){
AddTxt="\r[img]"+txt;
AddText(AddTxt);
AddTxt="[/img]";
AddText(AddTxt);
}
}
}
functionshowcode(){
if(helpstat){
alert("代码标记\n使用代码标记,可以使你的程序代码里面的html等标志不会被破坏.\n使用方法:\n[code]这里是代码文字[/code]");
}elseif(basic){
AddTxt="\r[code]\r[/code]";
AddText(AddTxt);
}else{
txt=prompt("输入代码","");
if(txt!=null){
AddTxt="\r[code]"+txt;
AddText(AddTxt);
AddTxt="[/code]";
AddText(AddTxt);
}
}
}
functionlist(){
if(helpstat){
alert("列表标记\n建造一个文字或则数字列表.\n\nUSE:[list][*]项目一[/*][*]项目二[/*][*]项目三[/*]
[/list]");
}elseif(basic){
AddTxt="[list][*][/*][*][/*][*][/*][/list]";
AddText(AddTxt);
}else{
txt=prompt("列表类型\n输入'A'表示有序列表,'1'表示无序列表,留空表示无序列表.","");
while((txt!="")&&(txt!="A")&&(txt!="a")&&(txt!="1")&&(txt!=null))
{
txt=prompt("错误!\n类型只能输入'A'、'1'或者留空.","");
}
if(txt!=null){
if(txt==""){
AddTxt="[list]";
}else{
AddTxt="[list="+txt+"]";
}
txt="1";
while((txt!="")&&(txt!=null)){
txt=prompt("列表项\n空白表示结束列表","");
if(txt!=""){
AddTxt+="[*]"+txt+"[/*]";
}
}
AddTxt+="[/list]";
AddText(AddTxt);
}
}
}
functionshowfont(font){
if(helpstat){
alert("字体标记\n给文字设置字体.\n用法:[face="+font+"]改变文字字体为"+font+"[/face]");
}elseif(basic){
AddTxt="[face="+font+"][/face]";
AddText(AddTxt);
}else{
txt=prompt("要设置字体的文字"+font,"文字");
if(txt!=null){
AddTxt="[face="+font+"]"+txt;
AddText(AddTxt);
AddTxt="[/face]";
AddText(AddTxt);
}
}
}
functionunderline(){
if(helpstat){
alert("下划线标记\n给文字加下划线.\n用法:[u]要加下划线的文字[/u]");
}elseif(basic){
AddTxt="[u][/u]";
AddText(AddTxt);
}else{
txt=prompt("下划线文字.","文字");
if(txt!=null){
AddTxt="[u]"+txt;
AddText(AddTxt);
AddTxt="[/u]";
AddText(AddTxt);
}
}
}
functionsetfly(){
if(helpstat){
alert("飞翔标记\n使文字飞行.\n用法:[fly]文字为这样文字[/fly]");
}elseif(basic){
AddTxt="[fly][/fly]";
AddText(AddTxt);
}else{
txt=prompt("飞翔文字","文字");
if(txt!=null){
AddTxt="[fly]"+txt;
AddText(AddTxt);
AddTxt="[/fly]";
AddText(AddTxt);
}
}
}
functionmove(){
if(helpstat){
alert("移动标记\n使文字产生移动效果.\n用法:[move]要产生移动效果的文字[/move]");
}elseif(basic){
AddTxt="[move][/move]";
AddText(AddTxt);
}else{
txt=prompt("要产生移动效果的文字","文字");
if(txt!=null){
AddTxt="[move]"+txt;
AddText(AddTxt);
AddTxt="[/move]";
AddText(AddTxt);
}
}
}
functionshadow(){
if(helpstat){
alert("阴影标记\n使文字产生阴影效果.\n用法:[SHADOW=宽度,颜色,边界]要产生阴影效果的文字[/SHADOW]");
}elseif(basic){
AddTxt="[SHADOW=255,blue,1][/SHADOW]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,blue,1");
if(txt2!=null){
txt=prompt("要产生阴影效果的文字","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[SHADOW=255,blue,1]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}else{
AddTxt="[SHADOW="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/SHADOW]";
AddText(AddTxt);
}
}
}
}
}
functionglow(){
if(helpstat){
alert("光晕标记\n使文字产生光晕效果.\n用法:[GLOW=宽度,颜色,边界]要产生光晕效果的文字[/GLOW]");
}elseif(basic){
AddTxt="[glow=255,red,2][/glow]";
AddText(AddTxt);
}else{
txt2=prompt("文字的长度、颜色和边界大小","255,red,2");
if(txt2!=null){
txt=prompt("要产生光晕效果的文字.","文字");
if(txt!=null){
if(txt2==""){
AddTxt="[glow=255,red,2]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}else{
AddTxt="[glow="+txt2+"]"+txt;
AddText(AddTxt);
AddTxt="[/glow]";
AddText(AddTxt);
}
}
}
}
}
functionopenscriphtml()
{
if(navigator.appName!="MicrosoftInternetExplorer")
alert("此功能Netscape用户不能使用!")
else
{newwin=window.open('htmledit/editor.html','','width=544,height=294');
newwin.focus();
}
}
functionrunEx(){
//alert('请注意,按下确定将生成页面,按下后请稍后....');
varwinEx=window.open("","winEx","width=600,height=400,status=yes,menubar=yes,scrollbars=yes,resizable=yes");
winEx.document.open("text/html","replace");
winEx.document.write(unescape(event.srcElement.parentElement.children[2].value));
winEx.document.close();
}
functionopenScript(url,width,height){
varWin=window.open(url,"openScript",'width='+width+',height='
+height+',resizable=1,scrollbars=yes,menubar=yes,status=yes');
}
</SCRIPT>
<SCRIPTlanguage=Javascript>
<!--hide
functioninsertsmilie(smilieface){
document.frmAnnounce.body.value+=smilieface;
}
//-->
</SCRIPT>
<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312"><LINK
href="DataGrid和CheckBox的混合使用http--www_booro_com_files/style.css"rel=stylesheet>
<METAcontent="MSHTML6.00.3790.0"name=GENERATOR></HEAD>
<BODYonmouseover="self.status='DOTNET新网-DOTNET的技术荟萃本站';return
true"
leftMargin=25topMargin=0>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT:
#2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:
collapse"
height=25cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=23> <IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/slogo_geci.gif"
border=0> DataGrid和CheckBox的混合使用 </TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT:
#2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=52cellSpacing=1cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="42%"
height=17>
<FONTcolor=#ff0000>你是第41位浏览该文章的人</FONT></TD>
<TDwidth="63%"height=17><IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/04.gif"
border=0>cuike519 <IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/05.gif"border=0>csdn
<IMGsrc="DataGrid和CheckBox的混合使用http--www_booro_com_files/date.gif"
border=0>2003-10-25</TD></TR>
<TR>
<TDvAlign=topwidth="100%"colSpan=2height=35>
<DIValign=center>
<CENTER>
<TABLE
style="BORDER-TOP:#2b55751pxsolid;BORDER-LEFT-WIDTH:1px;BORDER-BOTTOM-WIDTH:
1px;BORDER-COLLAPSE:collapse;BORDER-RIGHT-WIDTH:1px"
cellSpacing=3cellPadding=0width="98%"border=0>
<TBODY>
<TR>
<TD
width="100%">我们知道DataGrid是非常强大的一个ASP.NET组件,我们可以用它表示非常丰富的信息.在论坛里经常可以看见一些网友问一些关于该控件的问题,我虽不是什么高手但是对DataGrid还是有一些了解,加上我比较喜欢学习所以我今天就将DataGrid和CheckBox的组合使用做一个简单的描述.我们可能在写程序的时候都遇到这种情况:需要选择一个列表的所有项或者取消所有项的选择来删除这些列以及如何给用户一个提示信息是否要删除(改功能我在相关文档里描述过了),我也遇到这个问题.我解决它有2个方案分别描述如下:
<P></P>
<P>解决方案一:</P>
<P>1.
使用一个页面的CheckBox来完成这项艰巨的任务(夸张了),由于这个方法非常简单所以我也就不写代码只是做一个简单的描述就可以了.我们在我们页面上的DataGrid的上面或者下面放置一个CheckBox控件,最好用Table来控制位置这样看起来更加清楚.我们可以将这个CheckBox的AutoPostBack设置成true.这样我们可以让它提交服务器事件.很显然我们想要利用服务器事件来实现这个功能,后面就是遍历DataGrid的所有行来和CheckBox的Checked的选择相一致.</P>
<P>2.
依然是使用服务器的事件来完成我们的工作,这次有些不同我们将这个CheckBox放到DataGrid中对应CheckBox的列的页眉上(header).我们给这个模板列的题头上添加一个CheckBox控件利用它来完成和1中相同的工作,只是过程稍微有些不同.首先我们需要一个DataGrid来表现我们的程序,该DataGrid在Html页上的代码如下:</P>
<P><asp:datagridid="grdServer"runat="server"></P>
<P><Columns></P>
<P><asp:TemplateColumn></P>
<P><HeaderTemplate></P>
<P><asp:CheckBoxid="chkAllServer"runat="server"
AutoPostBack="True"></asp:CheckBox></P>
<P></HeaderTemplate></P>
<P><ItemTemplate></P>
<P><asp:CheckBoxid="chkDelServer"
runat="server"></asp:CheckBox></P>
<P></ItemTemplate></P>
<P></asp:TemplateColumn></P>
<P><asp:BoundColumnDataField="au_id"
HeaderText="编号"></asp:BoundColumn></P>
<P>//只显示主要的下面的不写了……在grdClient中有绑定的详细列</P>
<P></asp:datagrid></P>
<P>我们给HerderTemple添加了一个chkAllServer其中Server说明它是调用服务器端事件的.我们为了给这个控件添加事件必须在创建DataGridItem的时候给它添加事件代码如下:</P>
<P>privatevoidgrdServer_ItemCreated(objectsender,
System.Web.UI.WebControls.DataGridItemEventArgse){</P>
<P>if(e.Item.ItemType==ListItemType.Header){</P>
<P>CheckBoxchk=(CheckBox)e.Item.FindControl("chkAllServer");</P>
<P>//给页眉上的CheckBox添加出发事件</P>
<P>chk.CheckedChanged+=newEventHandler(chk_CheckedChanged);</P>
<P>}</P>
<P>}</P>
<P>事件处理程序如下所示:</P>
<P>//得到指定DataGrid的题头的CheckBox对象</P>
<P>privateCheckBoxGetHeaderCheckBox(DataGridgrd){</P>
<P>CheckBoxchk=null;</P>
<P>foreach(DataGridItemiingrd.Controls[0].Controls){</P>
<P>if(i.ItemType==ListItemType.Header){</P>
<P>chk=(CheckBox)i.FindControl("chkAllServer");</P>
<P>break;</P>
<P>}</P>
<P>}</P>
<P>returnchk;</P>
<P>}</P>
<P>privatevoidchk_CheckedChanged(objectsender,System.EventArgs
e){</P>
<P>CheckBoxchk=this.GetHeaderCheckBox(this.grdServer);</P>
<P>foreach(DataGridItemiinthis.grdServer.Items){</P>
<P>CheckBoxinChk=(CheckBox)i.FindControl("chkDelServer");</P>
<P>inChk.Checked=chk.Checked;</P>
<P>}</P>
<P>}</P>
<P>该事件处理程序将DataGrid里面的所有的CheckBox的Checked变的和题头的CheckBox的Checked的状态一样.</P>
<P></P>
<P>解决方案二:</P>
<P>这个方案对应上面的服务器事件主要是描述客户端的事件.同样也有两个小的稍有不同的办法.</P>
<P>1.和方案一的1一样,但是他是支持客户端的选中脚本至于脚本的内容下面2中会详细介绍.</P>
<P>2.
和解决方案一一样我们将CheckBox依然放在Header里面,稍有不同的是我们这次使用的是客户端脚本.为了实现这个功能我们在页面上放一个DataGrid如下:</P>
<P><asp:datagridid="grdClient"runat="server"></P>
<P><Columns></P>
<P><asp:TemplateColumn></P>
<P><HeaderTemplate></P>
<P><asp:CheckBoxid="chkAll"
runat="server"></asp:CheckBox></P>
<P></HeaderTemplate></P>
<P><ItemTemplate></P>
<P><asp:CheckBoxid="chkDelete"
runat="server"></asp:CheckBox></P>
<P></ItemTemplate></P>
<P></asp:TemplateColumn></P>
<P><asp:BoundColumnDataField="au_id"
HeaderText="编号"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="name"
HeaderText="姓名"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="phone"
HeaderText="电话"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="address"
HeaderText="地址"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="city"
HeaderText="城市"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="state"
HeaderText="状态"></asp:BoundColumn></P>
<P><asp:BoundColumnDataField="zip"
HeaderText="邮编"></asp:BoundColumn></P>
<P></Columns></P>
<P></asp:datagrid></P>
<P>为了实现客户端脚本的功能我们还要为页面添加Javascript脚本,脚本代码如下:</P>
<P><scriptlanguage="javascript"></P>
<P>functionSelectAll(chkVal,idVal){</P>
<P>varthisthisfrm=document.forms[0];</P>
<P>//查找Forms里面所有的元素</P>
<P>for(i=0;i<thisfrm.length;i++){</P>
<P>//查找模板头中的CheckBox</P>
<P>if(idVal.indexOf('chkAll')!=-1){</P>
<P>if(chkVal==true){</P>
<P>thisfrm.elements[i].checked=true;</P>
<P>}</P>
<P>else{</P>
<P>thisfrm.elements[i].checked=false;</P>
<P>}</P>
<P>}//if</P>
<P>//如果除题头以外的项没有全选上则取消题头的选择</P>
<P>elseif(idVal.indexOf('chkDelete')!=-1){</P>
<P>if(thisfrm.elements[i].checked==false){</P>
<P>thisfrm.elements[1].checked=false;</P>
<P>}</P>
<P>}</P>
<P>}//for</P>
<P>}</P>
<P></P>
<P>//删除判断</P>
<P>functionconfirmDelete(thisfrm){</P>
<P>for(i=0;i<thisfrm.length;i++){</P>
<P>if(thisfrm.elements[i].name.indexOf('chkDelete')!=-1){</P>
<P>if(thisfrm.elements[i].checked){</P>
<P>returnconfirm('你是否想要删除选择的记录?')</P>
<P>}</P>
<P>}</P>
<P>}</P>
<P>}</P>
<P></script></P>
<P>为了可以让这些控件和这些脚本联系上我们还需要在服务器端写如下的代码:</P>
<P>privatevoidgrdClient_ItemDataBound(objectsender,
System.Web.UI.WebControls.DataGridItemEventArgse){</P>
<P>if(e.Item.ItemType==ListItemType.Header){</P>
<P>CheckBoxchk=(CheckBox)e.Item.FindControl("chkAll");</P>
<P>chk.Attributes.Add("onclick","javascript:return
SelectAll(this.checked,this.id)");</P>
<P>}</P>
<P>elseif(e.Item.ItemType==ListItemType.Item){</P>
<P>CheckBoxchk=(CheckBox)e.Item.FindControl("chkDelete");</P>
<P>chk.Attributes.Add("onclick","javascript:return
SelectAll(this.checked,this.id)");</P>
<P>}</P>
<P>}</P>
<P>为了绑定这两个DataGrid我们写了如下的绑定方法:</P>
<P>privatevoidBindData(){</P>
<P>stringcommandText="SELECTau_id,au_lname+au_fnameasname,
phone,address,city,state,zipFROMauthors";</P>
<P>DataViewdv=
SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings["ConnectString"],CommandType.Text,commandText).Tables[0].DefaultView;</P>
<P>this.grdClient.DataSource=dv;</P>
<P>this.grdClient.DataBind();</P>
<P>this.grdServer.DataSource=dv;</P>
<P>this.grdServer.DataBind();</P>
<P>}</P>
<P>上面的代码可以看出我使用了Microsoft.ApplicationBlocks.Data命名空间里的SqlHelper,这个dll你可以从微软的网站上下载得到它的源码.</P>
<P>最后就是在页面加载的时候把我们的删除确认事件加载到客户端以及绑定我们的数据了,代码如下:</P>
<P>privatevoidPage_Load(objectsender,System.EventArgse){</P>
<P>//在此处放置用户代码以初始化页面</P>
<P>this.btnDelete.Attributes.Add("onclick","returnconfirmDelete
(this.form);");</P>
<P>if(!this.IsPostBack){</P>
<P>this.BindData();</P>
<P>}</P>
<P>}</P>
<P>至于如何删除数据我想大家可能都知道我在这里就不说了,如果需要这个工程的源代码请发邮件到Wu_jian830@hotmail.com所取,希望有更好办法的同志可以继续.学习交流请联系上面email对应的MSN!文章中的错误请大家批评指正,谢谢!<BR></P></TD></TR></TBODY></TABLE></CENTER></DIV><BR><BR>
上篇文章:<Ahref="http://www.booro.com/teach/list.asp?id=591">CSharp
Tips:让DotNet实现的COM对象支持IObjectSafety接口</A><BR> 下篇文章:<A
href="http://www.booro.com/teach/list.asp?id=593">在WindowsForm
中可以绑定非bool类型数据的CheckBox控件</A></TD></TR></TBODY></TABLE>
<TABLE
style="BORDER-TOP-WIDTH:1px;BORDER-RIGHT:#2b55751pxsolid;BORDER-LEFT:
#2b55751pxsolid;BORDER-BOTTOM:#2b55751pxsolid;BORDER-COLLAPSE:collapse"
height=19cellSpacing=0cellPadding=0width="100%"border=0>
<TBODY>
<TR>
<TDwidth="100%"bgColor=#f4f8fbheight=1>
<Palign=right> <A
href="http://www.booro.com/teach/list.asp?id=592#"><IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/01.gif"
border=0></A> <A
href="http://www.booro.com/teach/printpage.asp?id=592"><IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/02.gif"border=0></A>
<Ahref="javascript:self.close()"><IMG
src="DataGrid和CheckBox的混合使用http--www_booro_com_files/03.gif"
border=0></A> </P></TD></TR></TBODY></TABLE></BODY></HTML>