将元数据分配给asp.net控件

时间:2012-04-29 17:32:49

标签: c# asp.net

我想知道是否可以将“元数据”分配给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);

现在我想为控件分配更多数据,以便在发布回发事件时,我可以检索此数据以找出要执行的操作。我想过使用“属性”属性,但我想这不是一个好的解决方案,因为它可能会影响控件的html布局:

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

我需要这样做,因为我的页面有很多动态创建的链接按钮,所有这些按钮都会引发相同的回发事件。

有人建议我简单地连接控件ID中的所有“元数据”,但我正在尝试找到更好的解决方案。

感谢。

1 个答案:

答案 0 :(得分:0)

由于您不希望在标记中使用这些元数据,因此我假设您在客户端不需要它,因此您可以将元数据放在Session中,并将会话项命名为control ID + paramID,如下所示:

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

顺便说一句。这是一个例子,如果你从Page方法那样做,如果你没有页面实例,你可以访问这样的会话:

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