4

カスタム コントロールのパブリック プロパティを装飾するために 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 のコンテキストでは、一方向バインディングと双方向バインディングはどのように機能しますか?

任意の入力をいただければ幸いです。

4

2 に答える 2

1

これまでの私の調査結果:

1)BindableSupportASP.NETによって提供されるデータバインディング機能に関連しています。、、Page.DataBind()など。<%# Bind("MyProperty") %>_ <%# Eval ("MyProperty") %>@waltherの答えは+1。

2)ASP.NETの双方向バインディングは、ポストバックでデータバインドされた値への変更を保持する機能です。このSOスレッドは詳細を提供します。Bindは双方向ですが、Evalは一方向です。

于 2012-06-27T17:08:30.483 に答える
0

MSDNはこれについて十分に明確だと思います。あなたの目には短いかもしれませんが、それで十分です。この属性は BINDING に使用されます。変数への文字列の割り当ては、バインディングとは見なされません。

これは例えばバインディングです:

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

これはそうではありません:

myGridView.ID = "blablabla";

詳細については、このリンクを参照してください。ここで既存の学習ソースを複製する理由はわかりません...

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

アップデート:

asp.net の場合、このリンクはより具体的なものになる可能性があります。

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

于 2012-06-27T15:53:39.477 に答える