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

aaa361755438 2008-04-23 10:35:25
我做了个Repeater的批量删除,
页面上是这样的
<asp:Repeater ID="Repeater1" runat="server">

<ItemTemplate>
<tr bgcolor="#FFFFFF">
<td width="4%" align="center" class="txt12_18_cg">
<asp:CheckBox ID="CheckBox" runat="server" />
<input id= "idname" type="hidden" name= "fieldname " runat= "server" value='<%#DataBinder.Eval(Container.DataItem,"Id") %>'/></td>
<td width="10%" class="txt12_18_cg"><%#DataBinder.Eval(Container.DataItem,"Id") %></td>
<td class="txt12_18_cg"><%#DataBinder.Eval(Container.DataItem,"ISBN") %></td>
<td width="8%" class="txt12_18_cg" align="center"><%#DataBinder.Eval(Container.DataItem,"bookName") %></td>
<td width="12%" class="txt12_18_cg" align="center"><%#DataBinder.Eval(Container.DataItem,"price") %></td>
<td width="10%" class="txt12_18_cg" align="center"><%#DataBinder.Eval(Container.DataItem,"number") %></td>
<td width="10%" class="txt12_18_cg" align="center"><%#DataBinder.Eval(Container.DataItem,"myang") %></td>
<td width="10%" class="txt12_18_cg" align="center"><%#DataBinder.Eval(Container.DataItem, "bookSpec")%></td>
</tr>
</ItemTemplate>

</asp:Repeater>
cs里代码:
protected void Button1_Click(object sender, EventArgs e)
{
//Button1.Attributes["onclick"] = "return confirm('你确实要删除吗?')";

string ID= "";
foreach (RepeaterItem item in this.Repeater1.Items)
{
CheckBox ck = (CheckBox)item.FindControl("CheckBox");
if (ck.Checked)
{
HtmlInputHidden inputhidden = (HtmlInputHidden)item.FindControl("fieldname ");
ID += inputhidden.Value.Trim() + ",";
}
}
if (ID.Length == 0)
{
this.Page.RegisterStartupScript(" ", " <script> alert( '没有选定删除项 ');window.location.href=window.location.href; </script> ");
}
else
{
ID = ID.Remove(ID.Length - 1, 1);
Info.DelId = ID;
Fun fun = new Fun();
fun.DelshaixuanId();
Response.Write("<script language='javascript'>alert('删除成功');</script>");
}

}




它说我这句话ID += inputhidden.Value.Trim() + ",";
未将对象引用设置到对象的实例。什么意思啊?
...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaa361755438 2008-04-23
  • 打赏
  • 举报
回复
什么重复使用啊,说的具体点好吗?问题解决了我就给分
aaa361755438 2008-04-23
  • 打赏
  • 举报
回复
看我页面上就知道了阿
robertwang0499 2008-04-23
  • 打赏
  • 举报
回复
可能是你重复初始化了这个控件吧!这个问题能经常遇到。
Plougher 2008-04-23
  • 打赏
  • 举报
回复
inputhidden有没有啊??
aaa361755438 2008-04-23
  • 打赏
  • 举报
回复
一楼二楼的都不行啊,你们的答案效果都一样
如果像二楼的那样写的话,程序根本就不会运用ID += inputhidden.Value.Trim() + ",";
aaa361755438 2008-04-23
  • 打赏
  • 举报
回复
我先试试
feng5799 2008-04-23
  • 打赏
  • 举报
回复

HtmlInputHidden inputhidden = (HtmlInputHidden)item.FindControl("idname");
if(inputhidden != null)
{
ID += inputhidden.Value.Trim() + ",";
}
sunrain_yingxi 2008-04-23
  • 打赏
  • 举报
回复
HtmlInputHidden inputhidden = (HtmlInputHidden)item.FindControl("idname");
oyjd614 2008-04-23
  • 打赏
  • 举报
回复
楼主在找repeter中的控件方法有无,必须要在repeter的时间中用findcontrol来寻找才有效,不然会告诉你未将对象实例化。
例如:
 protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{

if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
((Button)Repeater1.Controls[Repeater1.Controls.Count-1].FindControl("Delete")).Attributes["onclick"] = "if(!confirm('你真的要删除这条记录么?'))return false;";
}

或者:
  protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
String Index = ((Label)Repeater1.Items[e.Item.ItemIndex].FindControl("lblID")).Text;

62,041

社区成员

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

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

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

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