0

ポストバックで後で取得できる asp.net コントロールに「メタデータ」を割り当てることが可能かどうかを知りたいですか? たとえば、LinkBut​​ton があるとします。

LinkButton link = new LinkButton();
link.ID = "LinkButton_0";
link.Text = "Click here for more info";
link.Click += new EventHandler(link_Click);

ここで、コントロールにさらにデータを割り当てて、ポスト バック イベントが発生したときにこのデータを取得して何をすべきかを確認できるようにします。「Attributes」プロパティを使用することを考えましたが、コントロールの HTML レイアウトに影響を与える可能性があるため、適切な解決策ではないと思います。

link.Attributes.Add("param0", "value0");
link.Attributes.Add("param1", "value1");
link.Attributes.Add("param2", "value2");

私のページには動的に作成されたリンクボタンがたくさんあり、それらすべてが同じポストバックイベントを発生させるため、これを行う必要があります。

コントロールの ID 内のすべての「メタデータ」を単純に連結することを提案する人もいますが、より良い解決策を見つけようとしています。

ありがとう。

4

1 に答える 1

0

これらのメタデータをマークアップに含めたくないので、クライアント側では必要ないと思います。そのため、メタデータをセッションに配置し、セッション項目にコントロール ID + paramID のような名前を付けることができます。次のようなものです。

this.Session.Add(link.ID + "-param1", "Value0");

ところで。これは、Page メソッドからそれを行う場合の例です。ページ インスタンスがない場合は、次のようにセッションにアクセスできます。

HttpContext.Current.Session.Add(link.ID + "-param1", "Value0");
于 2012-04-29T17:56:02.213 に答える