Gridview下有列为checkbox,对选中的checkbox操作
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="96%" BorderColor="#DCE7F9" BorderWidth="1px" Font-Size="9pt">
<Columns>
<asp:TemplateField HeaderText="选择">
<HeaderStyle Width="5%" BorderColor="#DCE7F9" BorderWidth="1px" Height="23px" />
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" BorderColor="White" BorderStyle="None" BorderWidth="1px" /><input id="Hidden1" runat="server" value='<%# Eval("newsid") %>' type="hidden" />
</ItemTemplate>
<ItemStyle BorderColor="#DCE7F9" BorderWidth="1px" HorizontalAlign="Center" />
</asp:TemplateField>
……
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="96%" BorderColor="#DCE7F9" BorderWidth="1px" Font-Size="9pt">
<Columns>
<asp:TemplateField HeaderText="选择">
<HeaderStyle Width="5%" BorderColor="#DCE7F9" BorderWidth="1px" Height="23px" />
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" BorderColor="White" BorderStyle="None" BorderWidth="1px" /><input id="Hidden1" runat="server" value='<%# Eval("newsid") %>' type="hidden" />
</ItemTemplate>
<ItemStyle BorderColor="#DCE7F9" BorderWidth="1px" HorizontalAlign="Center" />
</asp:TemplateField>
……
后台:
C# code
public void DeleteGridRow(string procName, string url, GridView gv, UpdatePanel upa,int tab)
{
int count = 0;
foreach (GridViewRow gvr in gv.Rows)
{
CheckBox cb = (CheckBox)gvr.FindControl("CheckBox1");
if (cb.Checked)
{
int id = Convert.ToInt32(((System.Web.UI.HtmlControls.HtmlInputHidden)gvr.FindControl("Hidden1")).Value.ToString());
SqlParameter[] prams ={
db.MakeInParam("@id",SqlDbType.Int,4,id)
};
db.RunProc(procName, prams);
count ;
}
}
Random r = new Random();
AjaxControlToolkit.ToolkitScriptManager.RegisterStartupScript(upa, this.GetType(), "", "alert('共" count "条记录被删除!');location.href='" url "?tab=" tab "&r=" r.Next(0, 9999) "';", true);
}
方法二:
<asp:datagrid id="dbPhrase" runat="server" Width="100%" PageSize="20" AllowSorting="True" HorizontalAlign="Center"
HeaderStyle-CssClass="tableHeader" ItemStyle-CssClass="tableItem" PagerStyle-Visible="False" DataKeyField="ID"
CellPadding="2" AutoGenerateColumns="False" BorderColor="#93BEE2" BorderWidth="1px">
<AlternatingItemStyle HorizontalAlign="Center"> </AlternatingItemStyle>
<ItemStyle Font-Size="X-Small" Font-Names="宋体" HorizontalAlign="Center" Height="25px" CssClass="tableItem"> </ItemStyle>
<HeaderStyle Font-Size="X-Small" HorizontalAlign="Center" Height="25px" ForeColor="#3276B5" CssClass="tableHeader"
BackColor="#ECEDEF"> </HeaderStyle>
<Columns>
<asp:TemplateColumn>
<HeaderStyle ForeColor="#3276B5" Width="60px"> </HeaderStyle>
<HeaderTemplate>
<FONT color="#3276B5"> <INPUT type="checkbox" onClick="CheckAll()" id="single"> 全选 </FONT>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="cbFlag" runat="server"> </asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle ForeColor="#3276B5" Width="200px"> </HeaderStyle>
<HeaderTemplate>
<FONT color="#3276B5"> 简述 </FONT>
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.Bewrite") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle ForeColor="#3276B5"> </HeaderStyle>
<HeaderTemplate>
<FONT color="#3276B5"> 内容 </FONT>
</HeaderTemplate>
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.Content") %>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible="False"> </PagerStyle>
</asp:datagrid>
function CheckAll()
{
var len=document.Form1.elements.length;
var i;
if(document.Form1.single.checked)
{
for (i=0;i <len;i )
{
if (document.Form1.elements[i].type=="checkbox")
{
document.Form1.elements[i].checked=true;
}
}
}
else
{
for (i=0;i <len;i )
{
if (document.Form1.elements[i].type=="checkbox")
{
document.Form1.elements[i].checked=false;
}
}
}
}
CS删除代码
private void btnDelete_Click(object sender, System.EventArgs e)
{
string selectedstring = "";
foreach(DataGridItem dgi in dbPhrase.Items)
{
for(int i=0;i <dgi.Cells[0].Controls.Count;i )
{
if(dgi.Cells[0].Controls[i].GetType().ToString()=="System.Web.UI.WebControls.CheckBox")
{
if(((CheckBox)dgi.Cells[0].Controls[i]).Checked==true)
{
selectedstring = dbPhrase.DataKeys[dgi.ItemIndex].ToString() ",";
}
}
}
}
if(selectedstring!="")
{
bool result=true;
selectedstring = selectedstring.Substring(0,selectedstring.Length-1);
string[] arrselected = selectedstring.Split(',');
for(int i=0;i <arrselected.Length;i )
{
if(arrselected[i].Trim()!="")
{
result=HP.DeletePhrase(Int32.Parse(arrselected[i]));
}
}
if(result)
{
Response.Write(" <script> alert('常用短语删除成功') </script> ");
}
}
}
以上只是删除操作,删除操作当然可以删除很多数据,假如是新增和修改,这个要靠楼主自己选择,因为以上代码可以取得你选中那行的编号的