未将对象引用设置到对象的实例

brat365 2003-01-22 01:31:05
在datagrid里加了一个
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="cmdDel" runat="server" Text="删除" CommandName="Delete" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>

我要为这个LinkButton加一个click的事件处理方法private void cmdDel_Click(object sender, System.EventArgs e)

但在页面对应的.cs文件里没有cmdDel,我就声明了一个
LinkButton cmdDel;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
cmdDel = new LinkButton();
}
并且在InitializeComponent()中写了一个
this.cmdDel.Click += new System.EventHandler(this.cmdDel_Click);

但报告错误:异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

说是下面这行错了:
this.cmdDel.Click += new System.EventHandler(this.cmdDel_Click);
...全文
49 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WQLu 2003-01-22
  • 打赏
  • 举报
回复
但那樣做必須render你new的控件﹐不然沒法顯示
WQLu 2003-01-22
  • 打赏
  • 举报
回复
this.cmdDel.Click += new System.EventHandler(this.cmdDel_Click);
放在
cmdDel = new LinkButton();后面
因為load 事件后執行InitializeComponent先執行
brat365 2003-01-22
  • 打赏
  • 举报
回复
/////////////////////////////////
我在DataGrid1_DelCommand里面加了一个
e.Item.Cells[1];
想取得当前那个位置的值,但总是空
但那里肯定有值啊
如果写e.Item.Cells[1] = "暗暗";
可以设置那个值
为什么???????
/////////////////////////////////
kinglht 2003-01-22
  • 打赏
  • 举报
回复
模板列的控件是没有事件的,你可以指定LinkButton 的CommandName属性:
<ItemTemplate>
<asp:LinkButton ID=AddButton Text="添加" CommandName="AddToCart" ForeColor="blue" runat="server" /> 
<asp:LinkButton ID=RemoveButton Text="移除" CommandName="RemoveFromCart" ForeColor="blue" runat="server" />
</ItemTemplate>

然后在DataGrid的MyDataGrid_ItemCommand()事件中处理:
private void MyDataGrid_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (((LinkButton)e.CommandSource).CommandName == "AddToCart") {
//添加代码
}
else {
//从 Cart 中移除

}
BindGrid();


}
houjianxun 2003-01-22
  • 打赏
  • 举报
回复
this.cmdDel.Click += new System.EventHandler(this.cmdDel_Click);
不应该加

vs.net中选择DataGrid在属性栏中选择闪电的符号再选择DeleteCommand
latahu 2003-01-22
  • 打赏
  • 举报
回复
你可以用属性生成器-列-按钮列-删除?
按钮列有delete事件的定义,相当于click事件

如果是自定义的,可以把click事件的代码写成脚本,放在html里
WSDOTNET 2003-01-22
  • 打赏
  • 举报
回复
改为:
protected LinkButton cmdDel;
private void Page_Load(object sender, System.EventArgs e)
{
}
gangganghao 2003-01-22
  • 打赏
  • 举报
回复
DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(DataGrid1_DelCommand);

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧