现在在datagrid中添加一模板列 实现了每个记录前有一复选框,但是在代码怎么编写 实现类似邮件里的选择几条记录删除,还有如何加一个全选后 可以同时删除所有记录?谢谢!
解决方案 »
- ASP.NET中上传和下载
- 帮我看看我这个下载方法哪有问题?乱码
- 新开一贴!AspNetPager+UpdatePanel+GridView怎么实现无刷新分页?
- .net2003和.net2005能同时在一台机器上使用吗?如果装上.net2005后,以前的2003程序怎么办?谢谢
- 紧急求救!关于用System.Web.Mail发送邮件时直接插入图片的问题。非常非常感谢
- 在ASP.NET(C# behind)中怎样实现,注销后回退的时候,看不到原来登陆的页面
- 请大家帮个忙,有关javascript的问题
- 我将默认主页Default.aspx的内容删除,为什么出现19个错误啊(图)
- DataGrid删除记录的问题
- 为失恋散分,送给所有和我一样失恋的人
- Web怎么才能将一个文件夹中的内容一起传到服务器上~~~~~~~`
- 动网论坛的帖子前一贴后一贴不是真正的!!
http://www.codeproject.com/aspnet/datagridcheckboxcol.asp
http://www.codeproject.com/aspnet/datagridCheckboxes.asp
{
System.Web.UI.WebControls.CheckBox checkBox;
for( int i = 0; i < DataGrid1.Items.Count; i ++ )
{
//查找CheckBox控件
checkBox = (CheckBox)DataGrid1.Items[i].FindControl("CheckBox1"); if(checkBox!=null && checkBox.Checked)
{
checkBoxID = DataGrid1.Items[i].Cells[1].Text; CB_ItemName = DataGrid1.Items[i].Cells[2].Text;
delDataGrid();
}
}
//重新绑定DataGrid
BindData();
}
cb_SelectCancel.Attributes.Add("onclick","return cb('cb_SelectCancel')");function fob(n, d)
{
var p,i,x;if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length)
{
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);
}
if(!(x=d[n])&&d.all)
x=d.all[n];
for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=fob(n,d.layers[i].document);
return x;
} function cb()
{
var a=cb.arguments;
var name=fob(a[0]);
e=document.forms(0).elements;
if (name.checked==true)
{
for (i=0;i<e.length;i++)
{
e[i].checked=true;
}
}
else
{
for (i=0;i<e.length;i++)
{
e[i].checked=false;
}
}
}
<HeaderStyle Width="10%"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="cb_Id" Runat="server" />
<asp:Label ID="lbl_Id" visible=False Text='<%# DataBinder.Eval(Container.DataItem,"ROLECODE").ToString() %>' Runat=server />
</ItemTemplate>
</asp:TemplateColumn>
{
for (int i=0;i<((DataGrid)DataGrid1).Items.Count;i++)
{
CheckBox myCheckBox;
Label myLabel;
myCheckBox=(CheckBox)((DataGrid)DataGrid1).Items[i].FindControl("cb_Id");
myLabel=(Label)((DataGrid)DataGrid1).Items[i].FindControl("lbl_Id");
if(myCheckBox.Checked==true)
{
PLOper.RoleDelete(account,myLabel.Text.ToString());
}
}
checkBoxID是什么 是checkbox的id属性? 又存放的是什么呢 是在grid中的序号还是在数据库表中的id号? 还有CB_ItemName 是什么存放的又是什么? delDataGrid()是删除吗? 怎么删除的呢? 根据什么来删除表中的记录? checkbox id 中存放的内容? To: 19820911()
PLOper.RoleDelete(account,myLabel.Text.ToString()); 是什么自定义函数? 能否贴出看看?
(二)
在摸版列里面再添加checkbox当页眉被选定产生事件,回传,每一行的checkBox都应该被选上
具体代码你自己研究:
页面添加:
<asp:TemplateColumn>
<HeaderStyle Width="10%"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
<HeaderTemplate>
<asp:CheckBox id="chkAllServer" runat="server" AutoPostBack="true"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkDelServer" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.News_ID") %>'>
</asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
后台代码:
private CheckBox GetHeaderCheckBox(DataGrid grd)
{ CheckBox chk = null; foreach (DataGridItem i in grd.Controls[0].Controls)
{ if(i.ItemType == ListItemType.Header)
{ chk = (CheckBox)i.FindControl("chkAllServer"); break; } } return chk; } private void chk_CheckedChanged(object sender, System.EventArgs e)
{ CheckBox chk = this.GetHeaderCheckBox(this.DataGrid1); foreach (DataGridItem i in this.DataGrid1.Items)
{ CheckBox inChk = (CheckBox)i.FindControl("chkDelServer"); inChk.Checked = chk.Checked; } }
AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="#F5F5F5"></AlternatingItemStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center" ForeColor="White" BackColor="#4A95FD" Height="8"></HeaderStyle>
<PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<asp:CheckBox id="chkAll" runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkItem" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="id" HeaderText="序号"></asp:BoundColumn>
<asp:BoundColumn DataField="username" HeaderText="用户名"></asp:BoundColumn>
<asp:BoundColumn DataField="workno" HeaderText="工号"></asp:BoundColumn>
<asp:BoundColumn DataField="dept" HeaderText="部门"></asp:BoundColumn>
</Columns>
<PagerStyle Visible="False" HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:datagrid> 后台代码: private void dgUserList_PreRender(object sender, System.EventArgs e)
{
foreach (DataGridItem item in dgUserList.Controls[0].Controls)
{
if (item.ItemType == ListItemType.Header)
{
CheckBox chkAll=(CheckBox)item.FindControl("chkAll");
System.Text.StringBuilder strScript = new System.Text.StringBuilder("<script language='javascript'> \n");
strScript.Append(" function checkStatus() { \n");
strScript.Append(" var bAll = true; \n");
strScript.Append(" bAll = document.all('" + chkAll.ClientID + "').checked; \n"); for(int i=0; i<dgUserList.Items.Count ; i++)
{
strScript.Append(" document.all('" + dgUserList.Items[i].Cells[0].FindControl("chkItem").ClientID + "').checked = bAll; \n");
}
strScript.Append(" } \n");
strScript.Append("</script> \n"); if(!Page.IsClientScriptBlockRegistered("checkStatus"))
Page.RegisterClientScriptBlock("checkStatus",strScript.ToString()); chkAll.Attributes.Add("onclick","checkStatus()");
return;
}
}