我在页面内定义全局变量:一个datatable和2个datarowPublic Dtt As New DataTable
Public dc As New DataColumn
Public dc2 As New DataColumn页面内有2个checkbox控件(cb1,cb2)和一个datagrid(dg1)控件
在cb1被check时执行
dc.ColumnName = ("标题")
Dtt.Columns.Add(dc)
dc2.ColumnName = ("地址")
Dtt.Columns.Add(dc2)
Dim dr As DataRow
dr = Dtt.NewRow
dr("标题") = "标题A"
dr("地址") = "地址A"
Dtt.Rows.Add(dr)
dg1.DataSource = Dtt
dg1.DataBind()在cb2被check时执行
dc.ColumnName = ("标题")
Dtt.Columns.Add(dc)
dc2.ColumnName = ("地址")
Dtt.Columns.Add(dc2)
Dim dr As DataRow
dr = Dtt.NewRow
dr("标题") = "标题B"
dr("地址") = "地址B"
Dtt.Rows.Add(dr)
dg1.DataSource = Dtt
dg1.DataBind()问题是为什么2个checkbox都选中时datagrid里只有一条记录那
Public dc As New DataColumn
Public dc2 As New DataColumn页面内有2个checkbox控件(cb1,cb2)和一个datagrid(dg1)控件
在cb1被check时执行
dc.ColumnName = ("标题")
Dtt.Columns.Add(dc)
dc2.ColumnName = ("地址")
Dtt.Columns.Add(dc2)
Dim dr As DataRow
dr = Dtt.NewRow
dr("标题") = "标题A"
dr("地址") = "地址A"
Dtt.Rows.Add(dr)
dg1.DataSource = Dtt
dg1.DataBind()在cb2被check时执行
dc.ColumnName = ("标题")
Dtt.Columns.Add(dc)
dc2.ColumnName = ("地址")
Dtt.Columns.Add(dc2)
Dim dr As DataRow
dr = Dtt.NewRow
dr("标题") = "标题B"
dr("地址") = "地址B"
Dtt.Rows.Add(dr)
dg1.DataSource = Dtt
dg1.DataBind()问题是为什么2个checkbox都选中时datagrid里只有一条记录那
dg1.DataBind()
只在一个地方用,删除一个
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;namespace _2003
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected DataTable Dtt ;
protected System.Web.UI.WebControls.CheckBox CheckBox1;
protected System.Web.UI.WebControls.CheckBox CheckBox2;
protected System.Web.UI.WebControls.DataGrid dg1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack || ViewState["dt"] == null )
{
Dtt = new DataTable();
Dtt.Columns.Add("标题");
Dtt.Columns.Add("地址");
ViewState["dt"] = Dtt;
}
else
{
Dtt = (DataTable) ViewState["dt"];
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.CheckBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
this.CheckBox2.CheckedChanged += new System.EventHandler(this.CheckBox2_CheckedChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckBox1.Checked)
{
DataRow dr = Dtt.NewRow();
dr["标题"] = "标题A";
dr["地址"] = "地址A";
Dtt.Rows.Add(dr);
}
else
{
DataRow[] rows = Dtt.Select("标题='标题A'");
if(rows.Length == 1)
{
Dtt.Rows.Remove(rows[0]);
}
}
dg1.DataSource = Dtt;
dg1.DataBind();
} private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)
{
if(CheckBox2.Checked)
{
DataRow dr = Dtt.NewRow();
dr["标题"] = "标题B";
dr["地址"] = "地址B";
Dtt.Rows.Add(dr);
}
else
{
DataRow[] rows = Dtt.Select("标题='标题B'");
if(rows.Length == 1)
{
Dtt.Rows.Remove(rows[0]);
}
}
dg1.DataSource = Dtt;
dg1.DataBind();
}
}
}