いくつかの 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");
}
等
これはすべてうまくいきました。次に、バインドされたフィールドを 2 列目、3 列目、4 列目、チェック ボックスの後、テキスト ボックスの前に配置するように要求されました。Add を Inserts に次のように変更することで、これは簡単に実行できることがわかりました。
grdExisting.Columns.Insert(1, bdfPrivName);
grdExisting.Columns.Insert(2, bdfDescription);
grdExisting.Columns.Insert(3, bdfLive);
ページは問題ないように見えましたが、FindControl() はすべて機能しません。
解決策または回避策を提案してください。
前もって感謝します。