如何解决在其他字段上进行控制之后,在可见的详细信息视图中设置图像按钮
| 我有这个detailsview,其中有一个字段和一个imagebutton。如果该字段的值为空,我想将imagebutton设置为不可见,如果它不为空,我想查看imagebutton。 这是我的代码://for (int i = 0; i < DetailsView1.Fields.Count; i++)
//{
Label lbl1 = (Label)DetailsView1.FindControl(\"Label1\");
ImageButton img = (ImageButton)DetailsView1.FindControl(\"ImageButton1\");
if (lbl1 != null)
{
LabelABC.Text = lbl1.Text.ToString();
img.Visible = true;
}
else
{
img.Visible = false;
}
//}
我不确定这里是否需要for循环。我也尝试使用.Rows[5].Cells[1].Find...
,但随后出现超出范围的错误。
使用上面发布的代码,我得到的错误是:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
在此行:img.Visible = false;
请问如何解决这个问题的任何提示?感谢您的时间。
解决方法
protected void DetailsView1_DataBound(object sender,EventArgs e)
{
DetailsView dv = sender as DetailsView;
foreach (DetailsViewRow dvr in dv.Rows) {
ImageButton img = (ImageButton)dvr.FindControl(\"ImageButton1\");
img.ID = img.ID + dvr.RowIndex;
}
}
尝试这样的事情……它无法以其他方式找到控件,然后您可以通过它的常规名称+行索引来找到它。如果每个行都有一个ImageButton的话。然后,您应该尝试使用类似的foreach查找它。
, 您应该在调试中逐步执行该代码,以确保在尝试访问控件时控件本身不为null。通常,您想在主控件的DataBound事件中执行此类操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。