datagrid加checkboc的问题! 在datagrid的第一列有个checkbox的单选框,我选中其中的一个单选框时,怎么知道它是否北选中了?知道的指点一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在datagrid的click事件里面去取值 private string SeletedID() { CheckBox chkExport; string StrSql=""; foreach (DataGridItem oDataGridItem in dgArret.Items) { chkExport = (CheckBox)oDataGridItem.FindControl("chkExport"); if (chkExport.Checked == true) { CheckmimOne = true; StrSql += "" + oDataGridItem.Cells[1].Text.Trim() + ","; } } if (CheckmimOne == true) { StrSql = StrSql.Substring(0, StrSql.LastIndexOf(",")); return StrSql; } else { return "Nochecked"; } } 楼主这个表达要加强啊,什么叫你选中他怎么知道他是不是被选中了??你是想得到它的checked属性对吧?简单啊,拿到他本身,然后拿他属性啊。 <asp:TemplateColumn HeaderText="<input type=checkbox id=CheckAll onclick='javascript:SelAll()' title='全选/全取消'>"> <HeaderStyle Width="20px"></HeaderStyle> <ItemTemplate> <asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox> </ItemTemplate> </asp:TemplateColumn> <asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="编号"> <HeaderStyle Width="25px"></HeaderStyle> </asp:BoundColumn> <asp:TemplateColumn HeaderText="学号"> <HeaderStyle Width="40px"></HeaderStyle> <ItemTemplate> <asp:Label id=lblCode runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Code") %>'> </asp:Label> </ItemTemplate> </asp:TemplateColumn> //循环取的DataGrid控件中选定项的值 foreach(DataGridItem oDataGridItem in grid.Items) { chkExport = (CheckBox)oDataGridItem.FindControl("CheckBox1"); //如果选中了则取值 if(chkExport.Checked) { sID = ((Label)(oDataGridItem.FindControl("lblCode"))).Text; Code = Code + "'"+sID+"'" + ","; } } 你这个值是跟数据源绑定的,所以访问数据源就行了.要注意的是编辑刷新数据.访问值可以通过类似一下代码,如果DataGrid绑定的是DataView,DataRowView drv = (DataRowView)this.BindingContext[this.ds,this.ds.Tables[0].TableName].Current;获取到drv就可以改数据,DataRow dw = drv.Row; // 得到DataRow,bool b = (bool)dw[0]; 菜鸟求指教 如何在vs2005工具中将一个类的属性和方法有序的列出来 正则表达式的问题(字符替换) vs2005 自己定义命名空间的用法 VS2005 Oracle参数化查询时向导里SQL语句怎么写? 如何动态的生成多个pictureBox控件,来显示图片? 如何实现窗口被点出后,其他窗口全部enable=false?? 求解决 c# 数据备份与还原 错误:只能终止用户进程 100分求助 sql高手请解答 大位们帮我看看这个程序,好吗?谢谢! 据说c#和Java都是用C编写的.是真的吗? DataBinder.Eval的用法??
{
CheckBox chkExport;
string StrSql="";
foreach (DataGridItem oDataGridItem in dgArret.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
if (chkExport.Checked == true)
{
CheckmimOne = true;
StrSql += "" + oDataGridItem.Cells[1].Text.Trim() + ",";
}
}
if (CheckmimOne == true)
{
StrSql = StrSql.Substring(0, StrSql.LastIndexOf(","));
return StrSql;
}
else
{
return "Nochecked";
}
}
你是想得到它的checked属性对吧?
简单啊,拿到他本身,然后拿他属性啊。
<HeaderStyle Width="20px"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="编号">
<HeaderStyle Width="25px"></HeaderStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="学号">
<HeaderStyle Width="40px"></HeaderStyle>
<ItemTemplate>
<asp:Label id=lblCode runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Code") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
//循环取的DataGrid控件中选定项的值
foreach(DataGridItem oDataGridItem in grid.Items)
{ chkExport = (CheckBox)oDataGridItem.FindControl("CheckBox1");
//如果选中了则取值
if(chkExport.Checked)
{
sID = ((Label)(oDataGridItem.FindControl("lblCode"))).Text;
Code = Code + "'"+sID+"'" + ",";
}
}
要注意的是编辑刷新数据.
访问值可以通过类似一下代码,
如果DataGrid绑定的是DataView,
DataRowView drv = (DataRowView)this.BindingContext[this.ds,this.ds.Tables[0].TableName].Current;
获取到drv就可以改数据,
DataRow dw = drv.Row; // 得到DataRow,
bool b = (bool)dw[0];