粪发涂墙

 

DataGrid中绑定Checkbox

一、前台HTML代码
 1<asp:datagrid id="DataGrid1" runat="server" Width="100%" BorderWidth="1px" BorderColor="Black"
 2                            AllowCustomPaging="True" AutoGenerateColumns="False">
 3                            <AlternatingItemStyle BackColor="White"></AlternatingItemStyle>
 4                            <HeaderStyle Height="25px" CssClass="tr_head" BackColor="#99CCFF"></HeaderStyle>
 5                            <Columns>
 6                                <asp:TemplateColumn>
 7                                    <ItemTemplate>
 8                                        <INPUT id="Checkbox2" type="checkbox" onclick="javascript:unselectall();" runat="server">
 9                                    </ItemTemplate>
10                                </asp:TemplateColumn>
11                                                                                            </Columns>
12                            <PagerStyle Visible="False" Mode="NumericPages"></PagerStyle>
13                        </asp:datagrid>
二、Checkbox选中时执行的脚本//选中复选框时把对应的值保存在select控件中,select是前台的隐藏域
<input id="select" type="hidden" name="select">

function unselectall()
{
    
var length=<%DataGrid1.Item.Count%>;
    
var n=0;
    document.all.select.value
="";
    
for (var i = 2; i < <%DataGrid1.Item.Count%>+2; i++)
    {
        
var obj=eval("document.all.DataGrid1__ctl"+i+"_Checkbox2");
        
if(obj.checked)
        {
            n
++;
            
if(document.all.select.value=="")
                document.all.select.value
=obj.value;
            
else
                document.all.select.value 
+=","+obj.value;
        }
    }
}
三、DataGrid的数据绑定函数
 1         private void DataGridBind()
 2         {
 3             //            string selectColumn="*";
 4          
 5             string selectWhere="";
 6 
 7             if(!(ViewState["Select_Where"]==null || ViewState["Select_Where"].ToString()==""))
 8             {
 9                 if(selectWhere.Length>0)selectWhere+=" and "+ViewState["Select_Where"].ToString();
10                 else selectWhere=" where "+ViewState["Select_Where"].ToString();
11             }
12             //string selectOrder=" order by xh ";
13 
14             string strCountSQL="select count(*) from jdz "+selectWhere;
15 
16             string strResultSQL="select * from jdz";
17 
18             string strResultSQL1=selectWhere+"";
19 
20             //string strTableName="";
21 
22             dv=Pagers1.SetPagers(strCountSQL,strResultSQL,0);
23             DataGrid1.PageSize=Pagers1.PageSize;
24             DataGrid1.DataSource=dv;
25             DataGrid1.DataBind();
26         }
四、Pages1.SetPagers函数
 1 public DataView SetPagers(string ountSQL,string resultSQL,int pageSize)
 2         {
 3             ViewState["Pagers_size"]=pageSize;  //单页显示的记录数
 4             intPageSize=pageSize;
 5 
 6             conn.Open();  //打开数据库连接
 7 
 8             cmd.CommandText=ountSQL;  //统计记录语句
 9             cmd.Connection=conn;
10             intCount=Convert.ToInt32( cmd.ExecuteScalar());  //把保存统计值
11             if(pageSize==0)  //当设置的单页显示记录数为0时,
12                 intPageSize=intCount;  //所有数据放在一页里显示
13             SetCurrentPage();  //获取单前所处页面索引值
14 
15             string strSQL=resultSQL;//"select * from "+
16                 //"(select rownum row_num,temp_1.* from "+  //row_num是rownum的别名,temp_1是resultSQL语句执行完后结果表的别名
17                 //"("+resultSQL+") temp_1 ";//+
18                 //"where rownum<="+intPageSize*intCurrentPage+") "+  //列出记录的范围,从前一页最后一条记录后的记录开始,到本页的最后一条记录被列出
19                 //"where row_num>="+(intPageSize*(intCurrentPage - 1) + 1);
20             cmd.CommandText=strSQL;
21             //Response.Write(strSQL);
22             OleDbDataAdapter odda=new OleDbDataAdapter(cmd);
23             DataTable dt=new DataTable();  //创建虚拟表来存放匹配记录
24             odda.Fill(dt);  //填充dt
25             DataView dv=new DataView(dt);  //将dt添加到DataView中
26             //dt.Clear();
27             //dt.Dispose();
28             
29             //释放资源
30             odda.Dispose();  
31             cmd.Dispose();
32             conn.Close();
33             conn.Dispose();
34             return dv;
35 
36         }
五、DataGrid的绑定函数ItemBond(),将每一行的Checkbox的Value绑定为数据库中xh字段值
 1 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
 2         {
 3             if(e.Item.ItemType==ListItemType.Header)
 4             {
 5             
 6             }
 7             else if(e.Item.ItemType!=ListItemType.Header&&e.Item.ItemType!=ListItemType.Footer)
 8             {
 9                 ((HtmlInputCheckBox)e.Item.FindControl("CheckBox2")).Value="'"+dv[e.Item.ItemIndex]["xh"]+"'";
10 //                for(int i=0;i<8;i++)
11 //                {
12 //                    if(e.Item.Cells[i+8].Text!="&nbsp;")
13 //                        e.Item.Cells[i+8].Text=Convert.ToDateTime(e.Item.Cells[i+8].Text).ToString("yy.MM");
14 //                }
15             }
16 
17         }


具体情况具体分析

posted on 2006-03-28 09:28  野猪&翔帅  阅读(1154)  评论(0编辑  收藏  举报

导航