空指针错误???

lanxing106 2010-05-13 10:19:27
大家帮我看看我这个为什么会报空指针,出现在这句代码上 LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");

<asp:DataList ID="DataList1" runat="server" OnItemCreated="DataList1_ItemCreated">
<ItemTemplate>
<div class="grzx_40">
<div class="grzx_40_a">
<img src="../UploadFiles/stdpic/<%# Eval("std_ImgPath")%>" width="50" height="66" /><span><a
href='<%# Eval("url")+""+Eval("std_Id") %>' title='<%# Eval("std_NameCopy") %>' class="bbs_l_09"><%# Eval("std_Name")%></a></span></div>
<div class="grzx_40_b">
<%# Convert.ToDateTime(Eval("AddTime")).ToString("yyyy-MM-dd")%>
</div>
<div class="grzx_40_c">
¥<%# String.Format("{0:F}", Convert.ToDouble(Eval("std_SellPrice"))) %></div>
<div class="grzx_40_d">
 <asp:LinkButton ID="LinkButton1" runat="server" CommandName="buy" CommandArgument='<%# Eval("std_Id") %>' OnCommand="LinkButton1_Command"><img src="../Image/WebImg/grzx_pic_22.gif" width="70" height="25" /></asp:LinkButton> 
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="del" CommandArgument='<%# Eval("Id") %>' OnCommand="LinkButton2_Command"><img src="../Image/WebImg/grzx_pic_23.gif" width="70" height="25" /></asp:LinkButton>
</div>
</div>
</ItemTemplate>
</asp:DataList>




protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
int id = Convert.ToInt32(((DataRowView)e.Item.DataItem).Row.ItemArray[1].ToString());

Standards std = new Standards();
std.std_Id = id;
std.std_Type = 0;

StandardsDAL sd = new StandardsDAL();
DataTable dt = sd.QueryById(std);

if (Convert.ToDouble(dt.Rows[0]["std_SellPrice"]) == 0)
{
LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");
lb.Enabled = false;

}
}




...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanxing106 2010-05-13
  • 打赏
  • 举报
回复
谢谢大家的热心,偶发分喽
阿非 2010-05-13
  • 打赏
  • 举报
回复
(LinkButton)DataList1.FindControl("LinkButton1");

=>

e.Item.FindControl("LinkButton1") as LinkButton;
lanxing106 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");
lb.Enabled = false;
=>

LinkButton lb = DataList1.FindControl("LinkButton1") as LinkButton;
if(lb!=null)
{
lb.Enabled = fal……
[/Quote]


protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{

int id = Convert.ToInt32(((DataRowView)e.Item.DataItem).Row.ItemArray[1].ToString());

Standards std = new Standards();
std.std_Id = id;
std.std_Type = 0;

StandardsDAL sd = new StandardsDAL();
DataTable dt = sd.QueryById(std);

if (Convert.ToDouble(dt.Rows[0]["std_SellPrice"]) == 0)
{
LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");

if (lb != null)
{
lb.Enabled = false;
}
}
}
}


可是仍然报空指针错误???
guoyongzhao 2010-05-13
  • 打赏
  • 举报
回复
不懂,机会留给楼下 ,jf
阿非 2010-05-13
  • 打赏
  • 举报
回复
if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType=ListItemType.Item)
{
// do sth
}

---------------------------------

LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");
lb.Enabled = false;

=>

LinkButton lb = e.Item.FindControl("LinkButton1") as LinkButton;
if(lb!=null)
{
lb.Enabled = false;
}
nosuchtracter 2010-05-13
  • 打赏
  • 举报
回复
写在DataBound事件里面
LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");
你这样写的话,不查询出好多来了?
你应该一行一行查找吧
阿非 2010-05-13
  • 打赏
  • 举报
回复
LinkButton lb = (LinkButton)DataList1.FindControl("LinkButton1");
lb.Enabled = false;
=>

LinkButton lb = DataList1.FindControl("LinkButton1") as LinkButton;
if(lb!=null)
{
lb.Enabled = false;
}

62,041

社区成员

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

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

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

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