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 }
具体情况具体分析
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 }
具体情况具体分析
相关文章推荐
- 重新绑定数据的时候,如何保留Datagrid中的checkbox的值
- DataGrid添加CheckBoxColumn绑定到Command自我实现
- 在绑定控件中(datagrid,gridview..)加checkbox
- 将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色改变
- DataGrid中CheckBox绑定bool属性来进行选中判断
- vs2003中遍历DataGrid里面的绑定列的CheckBox
- DataGrid数据绑定CheckBox
- DataGrid使用 绑定checkbox
- EasyUI入门7 datagrid根据列值设置checkbox的绑定状态
- 关于将数据库中的bit型数据绑定到DataGrid中的CheckBox的Checked属性的问题。
- 不绑定记录集获取datagrid某行某列的内容
- JavaScript实现DataGrid中的CheckBox全选与否
- flex checkbox和combobox作为datagrid的渲染器
- 选择DataGrid中的CheckBox控件后该行背景变色
- datalist或datagrid的数据源是数组的时候怎么写绑定?
- WPF 动态生成DataGrid及动态绑定解决方案
- 利用RowFilter属性,将一个DataSet绑定到两个DataGrid
- hashtable 绑定的datagrid
- easyui的datagrid的列checkbox自定义增加disabled选项
- easyUi 的DataGrid的绑定