2009-07-19 10 views
0

私はMVCでこれを行う方法を知っている:データベースフィールドをASP.NET 2.0のHTML TITLE要素にバインドするにはどうすればよいですか?

<title> <%= Model.Title %> </title> 

私もフォームまたはリストビュー上のコントロールにSqlDataSourceコントロールやObjectDataSourceのをバインドする方法を知っています。

しかし、SQLDataSourceまたはObjectDataSourceのフィールドをHTMLに直接レンダリングするにはどうすればよいですか?

答えて

1

プロパティを宣言し、そのフィールドの値を使用して値を設定できます。

コードビハインド:

private string myTitle; 
protected string MyTitle 
{ 
    get { return myTitle; } 
    set { myTitle = value; } 
} 
protected void Page_Load(object sender, EventArgs e) 
{ 
    MyTitle = "Testing 123!"; 
} 

マークアップ:<title><%= MyTitle %></title>

2

あなたが背後にあるコードでタイトルを設定するPage.Titleプロパティを使用することができます。

データソースでSelectCommandなどを実行したら、PageTitleに結果セットの値を代入するだけです。

代わりに、あなたはaspxページ自体を使用して、ちょうどHTML内のテキスト文字列を割り当て、このようにすることができます:Webフォームで

<title> 
    <%= dataSource.Select(...) %> 
</title> 
+0

ああ、明らかに逃した!確かにPage.Titleはこの場合最も簡単なアプローチです。私の返信は、他のページ要素やプロパティの値が複数の場所で使用されている場所で役に立ちます。 –

1

あなたはまだ「コンテナとしてのデータバインディングを実装WebBrowserコントロールを使用する必要がありますあなたのフィールドのために。たとえば、GridView、Repeater、ListView、FormView、またはDetailsViewなどです。残念ながら、ただ1つの行またはオブジェクトをレンダリングするために特別に設計されたWebControlはありません。だから、あなたは選択肢があります。

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="MyDataSource"> 
     <ItemTemplate> 
      <%# Eval("MyProperty") %> 
     </ItemTemplate> 
    </asp:Repeater> 

別alernativeは、データソースを使用しないことです。

は、このようなリピータのものを使用します。代わりに、ページにプロパティを追加し、データをバインドします。たとえば、ページの分離コードで:

public string MyPageProperty 
{ 
    get { return _myPageProperty; } 
    set { _myPageProperty = value; } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    MyPageProperty = "This is some data"; 
} 

次に、あなたのページでこれを行うことができます。

<div>The value is: <%= MyPageProperty %></div> 

お役に立てば幸いです。

関連する問題