using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class GridViewCheckBox : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
GridViewDataBind();
}
private void GridViewDataBind()
{
string connStr = ConfigurationManager.ConnectionStrings["northwind"].ConnectionString;
SqlConnection conn = new SqlConnection(connStr);
SqlDataAdapter da = new SqlDataAdapter("select firstname, lastname, city from employees", conn);
conn.Open();
DataSet ds = new DataSet();
try
{
da.Fill(ds, "testTable");
dgCheckBox.DataSource = ds.Tables["testTable"].DefaultView;
dgCheckBox.DataBind();
}
catch (Exception error)
{
Response.Write(error.ToString());
}
finally
{
conn.Close();
}
}
protected void cmdSelectAll_Click(object sender, EventArgs e)
{
System.Web.UI.WebControls.CheckBox chkEport;
if (cmdSelectAll.Text == "全選")
{
foreach (GridViewRow gridviewrow in dgCheckBox.Rows)
{
chkEport = (CheckBox)gridviewrow.FindControl("chkEport");
chkEport.Checked = true;
}
cmdSelectAll.Text = "取消";
}
else
{
foreach (GridViewRow gridviewrow in dgCheckBox.Rows)
{
chkEport = (CheckBox)gridviewrow.FindControl("chkEport");
chkEport.Checked = false;
}
cmdSelectAll.Text = "全選";
}
}
protected void cmdFindSelected_Click(object sender, EventArgs e)
{
System.Web.UI.WebControls.CheckBox chkEport;
string strID;
System.Text.StringBuilder strMsg = new System.Text.StringBuilder("選中項的City字段值分別爲:<hr color=red>");
foreach (GridViewRow gridviewrow in dgCheckBox.Rows)
{
chkEport = (CheckBox)gridviewrow.FindControl("chkEport");
if (chkEport.Checked)
{
strID = ((Label)(gridviewrow.FindControl("lblCity"))).Text;
strMsg.Append(strID + "<br><hr color=red>");
}
message.Text = strMsg.ToString();
}
}
protected void dgCheckBox_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell myCell;
myCell = e.Row.Cells[4];
LinkButton btnDel = (LinkButton)myCell.Controls[0];
btnDel.Attributes.Add("onclick", "return confirm('您真的要刪除此行嗎?');");
btnDel.Text = "刪除";
}
}
protected void dgCheckBox_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
Response.Write("刪除");
}
}
GridViewCheckBox.aspx如下:
<tr>
<td style="width: 112px" >
<asp:GridView ID="dgCheckBox" runat="server" GridLines="vertical" AutoGenerateColumns="false" PagerSettings-Mode="numeric" Width="326px" OnRowCreated="dgCheckBox_RowCreated" OnRowDeleting="dgCheckBox_RowDeleting">
<SelectedRowStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"/>
<AlternatingRowStyle BackColor="AppWorkspace"/>
<RowStyle ForeColor="ActiveBorder" BackColor="ActiveCaption" />
<HeaderStyle Font-Bold="True" ForeColor="ActiveCaptionText" BackColor="AliceBlue" />
<FooterStyle ForeColor="AppWorkspace" BackColor="Aqua" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkEport" runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="chkEportON" runat="server" />
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="lastname" HeaderText="lastname"/>
<asp:BoundField DataField="firstname" HeaderText="firstname" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblCity" runat="server" Text='<%#Eval("city") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField Text="刪除" CommandName="delete"/>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="Aquamarine" BackColor="Azure"/>
</asp:GridView>
</td>
</tr>
<tr>
<td style="width: 112px">
<asp:Button ID="cmdSelectAll" runat="server" Text="全選" OnClick="cmdSelectAll_Click" /> <asp:Button ID="cmdFindSelected" runat="server" Text="取得選擇的項" OnClick="cmdFindSelected_Click" />
</td>
</tr><tr>
<td><asp:Label ID="message" runat="server"></asp:Label></td>
</tr>
</table>
GridViewCheckBox.aspx.cs如下: