後でフォームの値を再入力できるように、特定の親内のすべてのフォーム入力コントロールを精査する汎用関数を作成しようとしています。
各コントロールのIDとVALUEを Cookieに保存し、VALUEFindControl(ID)
を設定する前に を使用してコントロールを見つけ、コントロールを再設定します。
内部に子コントロールがあるユーザーコントロールのインスタンスが複数ある場合を除いて、すべて正常に動作します。
たとえば、DateRange コントロールは 2 つのテキスト ボックスを定義します...
<asp:TextBox ID="txtDateFrom" />
<asp:TextBox ID="txtDateTo" />
次に、フォームに 2 つの DateRange コントロールがある場合...
<my:daterange id="DateRangeA" />
<my:daterange id="DateRangeB" />
... ID が両方(および 2x ) である2 つのテキスト ボックスがあるため、両方の値を Cookie に格納することも (ID が一意ではないため)、 を使用してコントロールを再度取得することもできません。txtDateFrom
txtDateTo
FindControl()
私が望むのは に似てFindControl(ID)
いますが、代わりに CLIENTID を使用して、異なるユーザーコントロール内の同じ ID を持つ子コントロールを区別できるようにします。
私は、すべてのコントロールへの完全なパスを (何らかの方法で) 手動で保存しなければならないという考えにうんざりしていFindControl(IDa).FindControl(IDb).FindControl(IDc)...
ます。
もっと簡単な方法があるはずですよね?
それとも、私はこれにすべて間違って近づいていますか? アドバイスありがとうございます。