我有一个带有几个 ItemTemplates 的 gridview。第一个包含一个复选框,其余的包含文本框。
然后我动态添加了一些像这样的绑定控件:
BoundField bdfPrivName = new BoundField();
clsUtilities.SetBoundFieldCenter(ref bdfPrivName, "PrivName", "Priv Name");
BoundField bdfDescription = new BoundField();
clsUtilities.SetBoundFieldLeft(ref bdfDescription, "PrivDesc", "Description");
BoundField bdfLive = new BoundField();
clsUtilities.SetBoundFieldCenter(ref bdfLive, "Live","Active?");
grdExisting.Columns.Add(bdfPrivName);
grdExisting.Columns.Add(bdfDescription);
grdExisting.Columns.Add(bdfLive);
然后我使用 FindControl() 来定位复选框和文本框并根据结果执行我的逻辑
foreach (GridViewRow gvr in grdMissing.Rows)
{
mckbAny = (CheckBox)gvr.FindControl("ckbAdd");
mtxtApplyDate = (TextBox)gvr.FindControl("txtAddApplyDate");
mtxtDateToAdd = (TextBox)gvr.FindControl("txtAddDateToAdd");
mtxtDateToRemove = (TextBox)gvr.FindControl("txtAddDateToRemove");
}
等等
这一切都很好。然后我收到一个请求,将绑定字段作为第二、第三和第四列,在复选框之后和文本框之前。我发现这很容易通过将 Add's 更改为 Inserts 来完成,如下所示:
grdExisting.Columns.Insert(1, bdfPrivName);
grdExisting.Columns.Insert(2, bdfDescription);
grdExisting.Columns.Insert(3, bdfLive);
页面看起来不错,但是 FindControl() 都无法正常工作。
请提出解决方案或解决方法。
提前致谢。