これはASP.Net2.0Webアプリです。参考までに、アイテムテンプレートは次のようになります。
<ItemTemplate>
<tr>
<td class="class1" align=center><a href='url'><img src="img.gif"></a></td>
<td class="class1"><%# DataBinder.Eval(Container.DataItem,"field1") %></td>
<td class="class1"><%# DataBinder.Eval(Container.DataItem,"field2") %></td>
<td class="class1"><%# DataBinder.Eval(Container.DataItem,"field3") %></td>
<td class="class1"><%# DataBinder.Eval(Container.DataItem,"field4") %></td>
</tr>
</ItemTemplate>
コードビハインドでこれを使用する:
foreach (RepeaterItem item in rptrFollowupSummary.Items)
{
string val = ((DataBoundLiteralControl)item.Controls[0]).Text;
Trace.Write(val);
}
私はこれを作成します:
<tr>
<td class="class1" align=center><a href='url'><img src="img.gif"></a></td>
<td class="class1">23</td>
<td class="class1">1/1/2000</td>
<td class="class1">-2</td>
<td class="class1">11</td>
</tr>
必要なのはField1とField4のデータです
DataListやGridViewのようにデータを取得できないようです。また、Googleで他に何かを思いついたり、これをすばやく活用して自分のやりたいことを実行したりすることもできません。データを取得するために私が見ることができる唯一の方法は、正規表現を使用してデータを取得することです(男性は必要なものを取得するため、すべてを取得します。私は男性ですよね?アレン私ではないですか?)。
私は正しい方向に進んでいますか(これを行うための特定の正規表現を探していません;それはフォローアップの質問かもしれません;))、または私は何かを逃していますか?
この場合のリピーターは石で固定されているので、これ以上エレガントなものに切り替えることはできません。昔々、Alison ZhouがDataListsを使用して提案したのと同じようなことをしましたが、しばらく(2年以上)経ち、この方法でそれを行うことを完全に忘れていました。ええ、明らかな何かを見落とすことについて話してください。。。
だから私はアリソンが提案したようにやった、そしてそれはうまくいく。このリピーターは数十行を取得できますが、ここではビューステートが問題になるとは思いません。代わりにそれを使用するのではなく、そのように実行する場合、私は実際に質問に話すことはできません(しかし、それ以外の場合はそれは私にとっては良い解決策のようです)。明らかに後者はビューステートのフットプリントではありませんが、私の目の前に極端な例がなければ、あるアプローチが別のアプローチよりも好ましい場合があると言うのに十分な経験はありません。アリソン、1つの質問:なぜラベルではなくリテラルなのか?
Euro Micelli、私はデータベースへの戻りを避けようとしていました。私は他の開発世界に比べてまだ少し環境に配慮しているので、データベースのトリップ数が「ちょうどいい」とは限らないことを認めます。ここではパフォーマンスの問題はありませんが(これを知るのに十分なアプリの負荷はわかっています)、上司は可能な限り少ない旅行を強調する傾向があるため、習慣からそれを避けようとしていたと思います。