2012-06-27 45 views
3

我已經看到BindableAttribute用於修飾自定義控件中的公共屬性。在自定義控件的屬性上添加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到不行,但我還是能做到這一點的標記(的.aspx)。 BindableSupport然後會有什麼影響?它是否隱藏了工具箱中的屬性?

<cc:MyControl runat="server" MyString="something" /> 

2)如何在自定義控件和ASP.NET上下文單向綁定和雙向綁定工作?

將不勝感激任何投入。

回答

1

我的發現迄今:

1)BindableSupport涉及ASP.NET提供數據綁定功能。例如。 Page.DataBind(),<%# Bind("MyProperty") %>,<%# Eval ("MyProperty") %>等。 +1 for @ walther的回答。

2)ASP.NET中的雙向綁定能夠在回發時保留對數據綁定值的修改。這SO thread提供了更多的細節。 Bind是雙向的,而Eval是單向的。

0

我相信MSDN對此足夠清楚。它可能在你眼中很短暫,但足夠了。 該屬性用於BINDING。將字符串分配給變量不被視爲綁定。

這是實例綁定:

myGridView.DataSource = myList; 
myGridView.DataBind(); 

這不是:

myGridView.ID = "blablabla"; 

請參閱此鏈接瞭解更多信息,並不明白了一個道理複製現有的學習源這裏...

http://msdn.microsoft.com/en-us/library/ms752347.aspx

UPDATE:

對於asp.net這個鏈路可以是更加說明性的:

http://www.asp.net/ajaxlibrary/HOW%20TO%20Create%20an%20Editable%20View%20with%20Two-Way%20Data%20Binding.ashx

+0

感謝您回答我的第一個問題,我現在明白'綁定'的真正含義。關於我的第二個問題,您提到的MSDN資源涉及WPF,我知道雙向綁定如何與WPF中的胖客戶端應用程序相關。但是,在Web環境(如ASP.NET)中,雙向綁定是如何工作的呢?例如。假設我在服務器上更改屬性,它不會自動影響在瀏覽器上呈現的控件。我不認爲這是明顯的,如果是這樣,我會刪除我的問題。謝謝。 – Channs

+0

@ channs,請參閱更新。希望它會幫助你理解如何做到這一點:) – walther

相關問題