2011-08-15 8 views
0

私はaspxページにリピーターを持っています。このため、データソースは、データ項目が異なることになるよう、したがって、私はリピーターバインド@ serverside

<ItemTemplate> 
      <tr > 
     <td bgcolor="" valign="top"> 
        <%#DataBinder.Eval(Container.DataItem, "Id")%> 
       </td> 

...

を行うことができないコールの種類ごとに変更されます。それはそれをサーバー側で行う最善の方法は何ですか?

おかげで、個人的に

+0

はあまりにも長い間、あなたの現在のデータソースは、IDプロパティを持っているように、そのOKでありませんか? –

+0

はい、IDはありますが、他の列は異なります。 – user626309

+0

DataFieldは異なるでしょうか?のように、今度はPersonIDで、次はProductIDでしょうか? –

答えて

0

は、最良の方法は、インターフェイスを作成し、すべてのタイプのためのアダプタを書きます。リピーターでは、このインターフェースでのみ動作します。

+0

私は正しいと思っていますが、私はちょうど1日が終わってテストをしているので、ずっと簡単で簡単な方法でそれをやり遂げることができると思っています。 – user626309

+0

しかし、この方法は簡単になります。 <%#Eval( "ID")%>は、すべてのデータソースで同じ名前のフィールドを1つだけバインドするロジックが必要な場合は、本当に機能します。あなたのバグを修正し、すべてのif/switchを解決するのにあなたの時間を費やすだけです。コンパイラにすべてのバグを確認させてください;) – IceN

+0

$(document).ready(function()にリピータIDが必要な場合はjscriptがあります。そうでなければ、ビルドに失敗します) – user626309

0

あなたは

<asp:Label ID="lable1" runat="server" ondatabinding="label1_ondatabinding" /> 

を行うと、手動でイベントハンドラ内のデータを埋めることができます。

protected void label1_ondatabinding(object sender, EventArgs e) 
{ 
    ((Label)sender).Text = ... 
} 
+0

ありがとうございます。それをondatabindingとする必要がありますが、何らかの機能が必要なのでしょうか?関数のシグネチャはどうなり、どのようにアイテムテンプレートを作成できますか? – user626309

関連する問題