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> ");

}
}
}

以上只是删除操作,删除操作当然可以删除很多数据,假如是新增和修改,这个要靠楼主自己选择,因为以上代码可以取得你选中那行的编号的

posted @ 2008-06-25 23:45  专注是什么  阅读(318)  评论(0编辑  收藏  举报