我想知道是否可以将“元数据”分配给asp.net控件,以后可以在回发中检索?例如,假设我有一个LinkButton:
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中的所有“元数据”,但我正在尝试找到更好的解决方案。
感谢。
答案 0 :(得分:0)
由于您不希望在标记中使用这些元数据,因此我假设您在客户端不需要它,因此您可以将元数据放在Session中,并将会话项命名为control ID + paramID,如下所示:
this.Session.Add(link.ID + "-param1", "Value0");
顺便说一句。这是一个例子,如果你从Page方法那样做,如果你没有页面实例,你可以访问这样的会话:
HttpContext.Current.Session.Add(link.ID + "-param1", "Value0");