Eine einfache Frage, denke ich.
Lange Zeit bin ich bei der programmatischen Datenbindung meiner ASP.NET-Steuerelemente blindlings einem (vermeintlich) gängigen Muster gefolgt. Nämlich:
gridView1.DataSource = someList;
gridView1.DataBind();
Wenn ich jedoch mein GridView so einstelle, dass es an eine DataSource gebunden ist Kontrolle über die Eigenschaft DataSourceID, ist der Aufruf von DataBind() nicht erforderlich. Nämlich:
gridView1.DataSourceID = LinqDataSource1;
ist ausreichend.
Wenn Sie außerdem versuchen, die DataSource-Eigenschaft im ASPX-Markup festzulegen, werden Sie mit folgendem Ergebnis begrüßt:
Sie können die Eigenschaft DataSource nicht deklarativ festlegen.
Ich nehme an, diese sind verwandt, aber ich bin immer noch ratlos, warum DataBind() notwendig ist. Der Unterschied zwischen DataSource und DataSourceID ist zweitrangig - ich kann verstehen, dass dort etwas Magie stattfindet. Die eigentliche Frage ist Warum verursacht der DataSource Propery Setter nicht automatisch eine Datenbindung? Gibt es Szenarien, in denen wir die DataSource festlegen, aber nicht an sie binden möchten?