在控制其他字段后,将细节视图中的imagebutton设置为可见
本文关键字:imagebutton 设置 视图 细节 其他 控制 字段 | 更新日期: 2023-09-27 17:58:06
我有一个详细视图,其中有一个字段和一个image按钮。如果字段的值为空,我希望将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。然后你应该试着用类似的前臂找到它。
您应该在调试中逐步执行该代码,以确保在尝试访问控件时控件本身不是null。通常,您希望在主控件的DataBound事件中执行这些操作。