您的位置:首页 > 编程语言 > ASP

ASP.NET基础教程-DataGrid表格控件-利用模板列中显示检索的数据

2007-10-10 09:02 561 查看


一、表格设置
1、在页面上添加一个按钮控件,ID设置为:“SELECT_DATA”,TEXT属性设置为:“提取数据”
2、在页面上添加一个DataGrid表格控件,给表格添加一个绑定列,页眉文本为“部门”,绑定字段为“dept”,一个模板列,页眉文本为“显示部门”
3、编辑模板列:在ItemTemplate项中添加两个按钮,按钮的Text属性分别为“人员清单”和“隐藏”,按钮的ID属性分别为:“select”和“cancel”, 其中“人员清单” 按钮的CommandName属性设置为:“select”.



二、CS代码
1、//页面初始化代码

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Button SELECT_DATA ;
private static SqlConnection con;
private static SqlDataAdapter da;
private static DataSet ds;
private static DataView dv;
private void Page_Load(object sender, System.EventArgs e)
{
//防止页面重复加载
if(!IsPostBack)
{
//创建数据库连接
con=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["server"]);
}
}
2、//提取数据按钮单击事件代码
private void SELECT_DATA _Click(object sender, System.EventArgs e)
{
//打开数据库
con.Open();
//从数据库中提取部门数据
da=new SqlDataAdapter("select dept from dept",con);
//创建记录集对象
ds=new DataSet();
//将数据库中提取出的数据加载到记录集中,并设置表的别名为DEPT
da.Fill(ds,"dept");
//从数据库中提取人员清单数据
da=new SqlDataAdapter("select userid,name,level,station,dept from verifya",con);
//将数据库中提取出的数据加载到记录集中,并设置表的别名为VERIFY
da.Fill(ds,"verify");
//关闭数据库
con.Close();
//将部门表作为表格的数据源
DataGrid1.DataSource=ds.Tables["dept"];
//绑定数据
DataGrid1.DataBind();
}
3、单击人员清单按钮后调用表格的ItemCommand事件,根据点击行的部门提取人员清单
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//判断点击的按钮是不是人员清单按钮
if(e.CommandName=="select")
{
//获取数据视图对象的数据源
dv=new DataView(ds.Tables["verify"]);
//设置过滤条件
dv.RowFilter="dept='"+e.Item.Cells[0].Text.ToString()+"'";
//将数据视图对象作为模板列中表格的数据源
((DataGrid)e.Item.FindControl("DataGrid2")).DataSource=dv;
//模板列中的表格绑定数据
((DataGrid)e.Item.FindControl("DataGrid2")).DataBind();
//将模板列中的表格在页面上显示出来
((Button)e.Item.FindControl("cancel")).Visible=true;
}
else
{
//将模板列中的表格数据源清空
((DataGrid)e.Item.FindControl("DataGrid2")).DataSource="";
//重新绑定
((DataGrid)e.Item.FindControl("DataGrid2")).DataBind();
//隐藏模板列中的表格
((Button)e.Item.FindControl("cancel")).Visible=false;
}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: