datatable 中增加一行.

coffeewar coffeewar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
想做一个输入的界面,请大家给个思路。

我是想通过一个button 的 click事件在 datatable 中增加一行,然后绑定到 datagrid 中,再将该行设置为 edit 。但 button 的click事件激发后, dataTable.NewRow时发生错误(“未将对象引用设置到对象的实例”)代码如下:

namespace fushi.manages
{
/// <summary>
/// adddep 的摘要说明。
/// </summary>
public class adddep : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button add;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected DataTable dt;
protected DataView dv;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack )
{
this.createDv ();
}

}
private void createDv()
{
dt=new DataTable ();
DataColumn dc=new DataColumn ("关键词",typeof(System.String ));
dt.Columns.Add (dc);
dc=new DataColumn ("长度",typeof(Int32));
dt.Columns .Add (dc);
dc=new DataColumn ("布尔型选项",typeof(System.String ));
dt.Columns .Add (dc);
}
private void bindtype()
{
Hashtable ht=new Hashtable ();
ht.Add (1,"字符串型");
ht.Add (2,"整型");
foreach(System.Web .UI .WebControls .DataGridItem item in DataGrid1.Items )
{
DropDownList dp=(DropDownList)item .FindControl ("keytype");
dp.DataSource =ht;
dp.DataTextField ="value";
dp.DataValueField ="key";
dp.DataBind ();
}

}


#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.add.Click += new System.EventHandler(this.add_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void add_Click(object sender, System.EventArgs e)
{
DataRow dr=dt.NewRow (); //错误(“未将对象引用设置到对象的实例”
// dt.Rows .InsertAt (dr,0);
dt.Rows .Add (dr);
dv=dt.DefaultView ;
this.DataGrid1 .DataSource =dv;
this.DataGrid1 .DataBind ();
this.bindtype ();

}
}
}
...全文
评论 13
收藏 已收藏
分享
返回顶部
coffeewar
.NET社区 62,274 成员 668,968 内容