我的程序是: protected System.Web.UI.WebControls.DataGrid myDataGrid;
private void Page_Load(object sender, System.EventArgs e)
{
// 绑定要维护的数据表
oleDbConnection1.ConnectionString = DataBase.CENTER_CONN;
oleDbConnection1.Open();
SqlStr="select * from " + TableName + " order by " + OrderField;
oleDbDataAdapter1.SelectCommand = new OleDbCommand(SqlStr, oleDbConnection1);
oleDbDataAdapter1.Fill(dataSet1); //动态生成DataGrid各列
int i;
TemplateColumn myColumn;
Label myLabel;
for (i=0; i<dataSet1.Tables[0].Columns.Count; i++)
{
myColumn = new TemplateColumn();
myLabel = new Label();
myLabel.ID = "lbl" + dataSet1.Tables[0].Columns[i].ColumnName;
myLabel.Text = "<%# DataBinder.Eval(Container, \"DataItem." + dataSet1.Tables[0].Columns[i].ColumnName + "\") %>";
myColumn.HeaderText = FieldNames[i];
myColumn.ItemTemplate.InstantiateIn(myLabel);
myDataGrid.Columns.AddAt(i, myColumn);
}
if(!this.IsPostBack)
{
BindGrid();
}
oleDbConnection1.Close();
}
编译正确,但是运行时出现错误未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 85: myLabel.Text = "<%# DataBinder.Eval(Container, \"DataItem." + dataSet1.Tables[0].Columns[i].ColumnName + "\") %>";
行 86: myColumn.HeaderText = FieldNames[i];
行 87: myColumn.ItemTemplate.InstantiateIn(myLabel);
行 88: //myColumn.DataField = dataSet1.Tables[0].Columns[i].ColumnName;
行 89: myDataGrid.Columns.AddAt(i, myColumn);
谁能给出运行正确的代码?或者解释一下ItemTemplate.InstantiateIn这个方法究竟该怎么用也行。解决就给分!
private void Page_Load(object sender, System.EventArgs e)
{
// 绑定要维护的数据表
oleDbConnection1.ConnectionString = DataBase.CENTER_CONN;
oleDbConnection1.Open();
SqlStr="select * from " + TableName + " order by " + OrderField;
oleDbDataAdapter1.SelectCommand = new OleDbCommand(SqlStr, oleDbConnection1);
oleDbDataAdapter1.Fill(dataSet1); //动态生成DataGrid各列
int i;
TemplateColumn myColumn;
Label myLabel;
for (i=0; i<dataSet1.Tables[0].Columns.Count; i++)
{
myColumn = new TemplateColumn();
myLabel = new Label();
myLabel.ID = "lbl" + dataSet1.Tables[0].Columns[i].ColumnName;
myLabel.Text = "<%# DataBinder.Eval(Container, \"DataItem." + dataSet1.Tables[0].Columns[i].ColumnName + "\") %>";
myColumn.HeaderText = FieldNames[i];
myColumn.ItemTemplate.InstantiateIn(myLabel);
myDataGrid.Columns.AddAt(i, myColumn);
}
if(!this.IsPostBack)
{
BindGrid();
}
oleDbConnection1.Close();
}
编译正确,但是运行时出现错误未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 85: myLabel.Text = "<%# DataBinder.Eval(Container, \"DataItem." + dataSet1.Tables[0].Columns[i].ColumnName + "\") %>";
行 86: myColumn.HeaderText = FieldNames[i];
行 87: myColumn.ItemTemplate.InstantiateIn(myLabel);
行 88: //myColumn.DataField = dataSet1.Tables[0].Columns[i].ColumnName;
行 89: myDataGrid.Columns.AddAt(i, myColumn);
谁能给出运行正确的代码?或者解释一下ItemTemplate.InstantiateIn这个方法究竟该怎么用也行。解决就给分!
解决方案 »
- ACCESS数据库连接失败!
- 求助,ftp上传问题,
- string[] 怎么写入内容在读取出来?
- 编辑器问题求助--问题解决另发贴给分
- 公司的邮箱系统有两个防火墙。。有时经常死掉。。请问如何用.NET实现一个小程序。。这个小程序可以随时检测这两个防火墙是否死掉。。。真
- 急问:有谁知道在asp.net中文件上传,允许文件上传的最大容量是多少?不剩感激!!!
- 关于发送邮件内容的问题--在线等待
- 错误:'TreeView1_data'未定义 在线等大大们给于提示
- 删除文件的问题
- 数据绑定的字段长度怎么取?高手请进,在线等待,立即给分
- 我的一个Nhibernate项目,它调用到了另一个用nhibernate做的DLL模块,则要如何对它们的dialect进行配置?
- 如何将一对多的查询结果显示在浏览器中?
linkcolumn2.DataNavigateUrlField="EvtDateTime";
linkcolumn2.HeaderText="删除";
linkcolumn2.Text="删除";
linkcolumn2.DataNavigateUrlFormatString="exit_pay.aspx?actid={0}";
linkcolumn2.HeaderStyle.Wrap=false;
linkcolumn2.ItemStyle.Wrap=false;
linkcolumn2.Visible=true;
linkcolumn2.HeaderStyle.HorizontalAlign=HorizontalAlign.Center;
linkcolumn2.ItemStyle.HorizontalAlign=HorizontalAlign.Center;
this.DataGrid1.Columns.Add(linkcolumn2);
// 绑定要维护的数据表
oleDbConnection1.ConnectionString = DataBase.CENTER_CONN;
oleDbConnection1.Open();
SqlStr="select * from " + TableName + " order by " + OrderField;
oleDbDataAdapter1.SelectCommand = new OleDbCommand(SqlStr, oleDbConnection1);
oleDbDataAdapter1.Fill(dataSet1);
这句好象就有问题,你里面的引号好象用乱了。
http://www.cnblogs.com/lovecherry/archive/2005/03/26/126102.html
{
myColumn = new TemplateColumn();
myColumn.ItemTemplate =LoadTemplate("newtemplate.ascx");
}"newtemplate.ascx"中的内容是
"<%# DataBinder.Eval(Container, "DataItem.xxx" %>
{
public ListItemType templateType;
public string templateID;
public string BindingField; public void InstantiateIn(Control container)
{
switch (templateType)
{
case ListItemType.Item:
Label myLabel = new Label();
myLabel.ID = templateID;
myLabel.DataBinding += new EventHandler(this.OnDataBinding);
container.Controls.Add(myLabel);
break;
case ListItemType.EditItem:
TextBox myTextBox = new TextBox();
myTextBox.ID = templateID;
myTextBox.DataBinding += new EventHandler(this.OnDataBinding);
container.Controls.Add(myTextBox);
break;
}
} public void OnDataBinding(object sender, EventArgs e)
{
Control l = (Control) sender;
DataGridItem container = (DataGridItem) l.NamingContainer;
switch (sender.GetType().Name.ToString())
{
case "Label":
((Label)l).Text = ((DataRowView)container.DataItem)[BindingField].ToString();
break;
case "TextBox":
((TextBox)l).Text = ((DataRowView)container.DataItem)[BindingField].ToString();
break;
}
}
}
我在运行的时候发现这里出错,说是指定的转换无效.