这几天我写的东西都能直接拿来运行,都是完整的代码
我实现的功能很简单:就是在如图所示:
删除选定的项
全部选中删除
分页显示数据
查看选中的项
打印页面
关闭页面
提示删除对话框
gridedit.html
代码如下:
<form id="Form1" method="post" runat="server">
<asp:datagrid id="dg" style="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 64px" runat="server"
AutoGenerateColumns="False" PageSize="8" AllowPaging="True" Font-Size="9pt" Font-Names="Times New Roman"
Width="384px" ForeColor="#006633" BackColor="#CCCCFF" BorderWidth="1px" PagerStyle-HorizontalAlign="Right"
PagerStyle-Mode="NumericPages" OnPageIndexChanged="MyGridPager" Height="208px">
<HeaderStyle BackColor="#339999"></HeaderStyle>
<FooterStyle BackColor="#336699"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderImageUrl="images/close_d.gif">
<ItemTemplate>
<input type="hidden" id="SelectedID" runat="server" value='<%# DataBinder.Eval(Container.DataItem,"customerid")%>' NAME="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="customerid" HeaderText="客户编号"></asp:BoundColumn>
<asp:BoundColumn DataField="address" HeaderText="客户地址"></asp:BoundColumn>
<asp:BoundColumn DataField="city" HeaderText="客户城市"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle>
</asp:datagrid><asp:imagebutton id="delete" style="Z-NDEX: 102; LEFT: 128px; POSITION: absolute; TOP: 40px" runat="server" Width="80px" Height="24px" ImageUrl="images/delete.gif"></asp:imagebutton><IMG style="Z-INDEX: 103; LEFT: 264px; POSITION: absolute; TOP: 40px" οnclick="window.print()"
src="images/print.gif" border="0"> <IMG style="Z-INDEX: 104; LEFT: 424px; POSITION: absolute; TOP: 40px" οnclick="window.close()"src="images/close1.gif">
<br>
<asp:Button id="cmdSelectAll" runat="server" Text="全部选中" style="Z-INDEX: 105; LEFT: 128px; POSITION: absolute; TOP: 288px"></asp:Button>
<asp:Button id="cmdFindSelected" runat="server" Text="查看选中的项目" style="Z-INDEX: 106; LEFT: 224px; POSITION: absolute; TOP: 288px"></asp:Button>
<hr style="Z-INDEX: 107; LEFT: 0px; POSITION: absolute; TOP: 360px">
<asp:Label id="Label1" runat="server" style="Z-INDEX:108; LEFT: 56px; POSITION: absolute; TOP: 336px" Width="640px"></asp:Label>
<asp:Label id="Label2" runat="server" style="Z-INDEX: 109; LEFT: 64px; POSITION: absolute; TOP: 368px"Width="640px"></asp:Label>
</form>
上面的类容注意几点:
<input type="hidden" id="SelectedID" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "customerid")%>' name="SelectedID"/>
<asp:CheckBox ID="chkExport" Runat="server" />
下面是后台代码:
gridedit.CS
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient ;
namespace DataGridDemo
{
/// <summary>
/// gridedit 的摘要说明。
/// </summary>
public class gridedit : System.Web.UI.Page
{
protected System.Web.UI.WebControls.ImageButton delete;
protected System.Web.UI.WebControls.Button cmdSelectAll;
protected System.Web.UI.WebControls.Button cmdFindSelected;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.DataGrid dg;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack )
{
BindGrid();
cmdSelectAll.Text ="全部选中";
//弹出确认删除对话框 WebControl btndele=(WebControl)Page.FindControl("delete");
btndele.Attributes.Add("onclick", "return confirm('确实要删除吗?');");
}
}
ICollection CreateDataSource()
{
string connectionString="server=JIANGHUA;user id=sa;password=; database=northwind";
SqlConnection mycon=new SqlConnection ();
mycon.ConnectionString =connectionString;
string sql;
sql="select customerid,address,city from customers order by customerid ";
SqlDataAdapter myadp=new SqlDataAdapter (sql,mycon);
DataSet myds =new DataSet ();
myadp.Fill(myds);
mycon.Close ();
return myds.Tables[0].DefaultView;
}
public void BindGrid()
{//绑定数据源
dg.DataSource =CreateDataSource();
dg.DataBind ();
}
//分页显示
public void MyGridPager(object sender,DataGridPageChangedEventArgs e)
{
dg.CurrentPageIndex =e.NewPageIndex;
BindGrid();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器
所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.delete.Click += new System.Web.UI.
ImageClickEventHandler(this.ImageButton1_Click);
this.cmdSelectAll.Click += new System.EventHandler(this
.cmdSelectAll_Click);
this.cmdFindSelected.Click += new System.EventHandler
(this.cmdFindSelected_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
//添加删除选项数据的代码,很简单的,自己添加就行
}
//选中当前的所有选项
private void cmdSelectAll_Click(object sender, System.EventArgs e)
{
SelectAll();
}
private void SelectAll()
{
CheckBox chkExport;//实例一个CHECKBOX对象
if(cmdSelectAll.Text == "全部选中")//全部选中选项
{
foreach(DataGridItem dgitem in dg.Items )
{
chkExport=(CheckBox)dgitem.FindControl("chkExport");
chkExport.Checked =true;
}
cmdSelectAll.Text = "全部不选";
}
else
{
foreach(DataGridItem dgitem in dg.Items )
{
chkExport=(CheckBox)dgitem.
FindControl("chkExport");
chkExport.Checked =false;
}
cmdSelectAll.Text = "全部选中";
}
}
private void cmdFindSelected_Click(object sender, System.EventArgs e)
{//显示演示信息
CheckBox chkExport;
ArrayList oExArgs=new ArrayList ();
string sID;
Label1.Text = "";
Label2.Text = "";
foreach(DataGridItem dgitem in dg.Items)
{
chkExport= (CheckBox)dgitem.FindControl
("chkExport");
if( chkExport.Checked)
{
//如果要进行删除,可以在这里构造sql语句进行删除
string sql = "DELETE FROM customers WHERE customerid =" + ((HtmlInputHiddendgitem.FindControl("SelectedID")).Value;
Label2.Text += "<li>" + sql;
sID = ((HtmlInputHidden)dgitem.FindControl("SelectedID")).Value;oExArgs.Add(sID);
int i = 0;
Label1.Text = "";
for( i = 0;i<oExArgs.Count;i++)
{
Label1.Text +=
oExArgs[i] + "<br>";
}
}
}
Label2.Text += "<br><font color=red>执行SQL语句即
可删除,这里省略。</font>";
}
}
}