日期:2014-05-18  浏览次数:20527 次

何实现dataGrid 里面的 checkbox 与表关联?
何实现dataGrid             里面的     checkbox         与表关联?    
 
表结构:    
 
Fid                     Cont    
  1                         yes
  2                         no
  3                         no  
  4                         yes


dataGrid  
Fid                     CheckBox           操作
1                             选中               修改
2                             未选中           修改
3                             未选中           修改
4                             选中               修改

初始化时,从表中读取数据。当表中的数据对yes时   CheckBox为选中,否则是非选中状态,
当点击修改时,如果   CheckBox   选中是,表中的   Cont   为yes   ,否则为   no

这样的功能怎样实现?有这方面的资料说一下,谢谢了



------解决方案--------------------
这样:
先把cont字段转为模板列和Checkbox放在模板列
在DataGridID_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)事件里

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.EditItem || e.Item.ItemType == ListItemType.SelectedItem)
{
CheckBox chk;
chk = (CheckBox)e.Item.Cells[0].FindControl( "CheckBoxId ");
Label lb;
lb = ((Label)e.Item.FindControl( "LabelContID "));
if (lb.Text == "yes ")
{chk.Checked = true;}
else chk.Checked=false;
}
------解决方案--------------------
<asp:TemplateColumn HeaderText= "cont ">
<ItemTemplate>
<asp:CheckBox id= "CheckBox1 " runat= "server " Checked= ' <%#DataBinder.Eval(Container.DataItem, "cont ")%> ' Enabled= "False "> </asp:CheckBox>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox id= "Checkbox2 " runat= "server " Checked= ' <%#DataBinder.Eval(Container.DataItem, "cont ")%> ' Enabled= "true "> </asp:CheckBox>
</EditItemTemplate>
</asp:TemplateColumn>