我用datagrid绑定了筛选后的数据,在datagrid中我加了一个checkbox作为模板,在显示数据后,
checkbox被选中后,在按删除按钮就删掉那条信息,而且这个checkbox和删除按钮结合可以删除多项。但是实现有问题?
foreach(DataGridItem thisItem in DataGrid1.Items)
{
if(((CheckBox)thisItem.Cells[0].Controls[1]).Checked)
{
string str = DataGrid1.DataKeys[thisItem.ItemIndex].ToString();
//删除
//代码删除写的有问题,就不写了,请帮忙
????
}
}
还有请教能否读datagrid中的选中信息?
checkbox被选中后,在按删除按钮就删掉那条信息,而且这个checkbox和删除按钮结合可以删除多项。但是实现有问题?
foreach(DataGridItem thisItem in DataGrid1.Items)
{
if(((CheckBox)thisItem.Cells[0].Controls[1]).Checked)
{
string str = DataGrid1.DataKeys[thisItem.ItemIndex].ToString();
//删除
//代码删除写的有问题,就不写了,请帮忙
????
}
}
还有请教能否读datagrid中的选中信息?
aspx<script language="javascript">
<!--function select_all()
{
for (var i=0;i<frmMain.elements.length ;i++)
if(frmMain.elements[i].name=="selItem")
frmMain.elements[i].checked=true
}function getDelId(){
var length=document.all.selItem.length;
if(document.all.selItem.checked){
document.all.selId.value+="'"+document.all.selItem.value+"',";
}
else{
for(i=0;i<length;i++){
if(document.all.selItem[i].checked){
document.all.selId.value+="'"+document.all.selItem[i].value+"',";
}
}
}
if(!window.confirm("确实要删除这些信息吗?"))
document.all.selId.value="";
}
//-->
</script><asp:TemplateColumn HeaderText="操作">
<HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
<ItemTemplate>
<input type="checkbox" name="selItem" value='<%# DataBinder.Eval(Container.DataItem,"ID") %>'>
</ItemTemplate>
</asp:TemplateColumn><input type="button" height="5" value="全选" name="selectall" onClick="return select_all()">
<input type="reset" name="Reset" value="取消选择">
<asp:button id="btnDel" runat="server" Text="删除选中"></asp:button>
<INPUT id="selId" type="hidden" runat="server" NAME="selId">cs处理部分
private void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
btnDel.Attributes["onclick"] = "getDelId()";
RefreshGrid();
}
}private void dataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dataGrid.CurrentPageIndex=e.NewPageIndex;
RefreshGrid();
}private void RefreshGrid()
{
string sqlStr = "select * from [Article] order by ID desc";
doData.bindDtatGrid(sqlStr,dataGrid);
}
private void btnDel_Click(object sender, System.EventArgs e)
{
string strWhere="'',"+selId.Value;
strWhere=strWhere.Substring(0,strWhere.Length-1);
string delStr = "delete from [Article] where ID in ("+strWhere+")";
doData.opData(delStr);
RefreshGrid();
}
for(i=DataGrid1.Items.Count-1;i>-1;i--)
{
CheckBox CheckBox_sel = (CheckBox) DataGrid1.Items[i].FindControl("Check_xxx");
//当有CHECKBOX被选中时
if(CheckBox_sel.Checked)
{
......
}
}
答:既然你能取得DataKeys,那么在以这个DataKeys为关键字,到数据库里检索相对应的数据,然后把它们显示出来就可以了!