我已经看到BindableAttribute用于装饰自定义控件中的公共属性。
MSDN简要提到它提供了控制绑定方向的能力以及是否在设计时支持绑定。
public class MyControl : Panel
{
[Bindable(BindableSupport.No, BindingDirection.OneWay)]
public string MyString { get; set; }
}
var myControl = new MyControl();
var myString = myControl.MyString;
问题:
1)我将BindableSupport
设置为No,但我仍然可以在标记(.aspx)中执行此操作。
BindableSupport
会影响什么?它是否隐藏了工具箱中的属性?
<cc:MyControl runat="server" MyString="something" />
2)单向绑定和双向绑定如何在自定义控件和ASP.NET的上下文中工作?
非常感谢任何投入。
答案 0 :(得分:1)
到目前为止我的发现:
1)BindableSupport
与ASP.NET提供的数据绑定功能有关。例如。 Page.DataBind()
,<%# Bind("MyProperty") %>
,<%# Eval ("MyProperty") %>
等等。
给@ walther答案+1。
2)ASP.NET中的双向绑定是在回发时保留对数据绑定值的修改的能力。此SO thread提供了更多详细信息。 Bind
是双向的,而Eval
是单向的。
答案 1 :(得分:0)
我相信MSDN对此很清楚。它可能在你眼中很短暂,但它已经足够了。 此属性用于BINDING。为变量分配字符串不被视为绑定。
这是例如绑定:
myGridView.DataSource = myList;
myGridView.DataBind();
这不是:
myGridView.ID = "blablabla";
请参阅此链接了解更多信息,请勿在此处查看复制现有学习资源的理由......
http://msdn.microsoft.com/en-us/library/ms752347.aspx
更新:
对于asp.net,此链接可能更具说明性: