您的位置:首页 > 其它

DataGrid中绑定Checkbox

2006-03-28 09:28 218 查看
一、前台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!=" ")
13 // e.Item.Cells[i+8].Text=Convert.ToDateTime(e.Item.Cells[i+8].Text).ToString("yy.MM");
14 // }
15 }
16
17 }

具体情况具体分析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: