親コントロールにHiddenField子コントロールのインスタンスがあります。私はそれを追加するCreateChildControls()を使用しています。すべてが、フィールドに追加される値を含むクライアント側で動作します。しかし、ポストバックに、フィールドへの参照が隠しフィールドが、親カスタムコントロール内のポストバック時にビューステートからロードされない
nullで、ここでのコード私は単純にViewStateに頼って試してみました
protected override void CreateChildControls()
{
assignedListField = new HiddenField();
assignedListField.ID = ClientID + "_HiddenAssignedList";
assignedListField.EnableViewState = true;
Controls.Add(assignedListField);
base.CreateChildControls();
}
public IList<DlpItem> GetAssignedItems()
{
//assignedListField = FindControl(ClientID + "_HiddenUnassignedList") as HiddenField;
var TmpAssignedItems = new List<DlpItem>();
var list = assignedListField.Value;
var items = list.Split(new string[] { "#" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var item in items)
{
var mix = item.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var text = mix[0];
var id = int.Parse(mix[1]);
TmpAssignedItems.Add(new DlpItem(text, id));
}
return TmpAssignedItems;
}
です...その後も()にFindControlを使用しようとしました。いずれも動作しません、それはヌル参照として現れます...ここに何が起こっているかの入力?
愚かな間違い。 EnsureChildControls()を呼び出すことを忘れた...私はすでに自分のコードでそれを持っていたと思った。まあそれは修正されました。ありがとう= D –