this questionと多少似たようなことをしようとしています。その答えは、コードビハインドからデータバインディングを行うことを示唆していましたが、私はこれを適用しているアイテムが多数あり、できるだけそれをやりたいとは思いません。<%: ... %>から、親をコードビハインドから変更する画像に動的にHTMLを追加する
私はユーザーコントロールを持っています。カスタムコントロールのアトリビュートの値に応じて、いくつかの画像が表示または非表示になります。私はこれを達成するために<%: ... %>
構文を使用するいくつかの異なる方法を試しましたが、それらのすべてが以下で説明する理由で失敗しました。
私の最初の試みは、リンクされた質問のOPのようなことをすることでした。彼の質問から:
<select id="myDropDown"
style="width:60px;display:<%# (bool)Eval("ShowDropDown") ? "block" : "none" %>;">
私は似たような試みたが、OP等がこれは値で<%# (bool)Eval("ShowDropDown") ? "block" : "none" %>
に代わるものではありませんでした - それだけでリテラルテキストとしてあることをレンダリング。
(のどれも働いていない、と私は、この上でいくつかのバリエーションを試してみた)私が試した次のことは、以下の通りです:
<td id="tdR1Day1" style="vertical-align: top;" runat="server">
<div style="width: 100%; height: 15px">
<img title="Click to add pattern" <%: IsHidden ? "hidden = \"hidden\"" : "" %> align="right" id="imgR1Day1" style="cursor: pointer;" alt="Add" src="../Images/Add.gif">
</div>
</td>
私がしようとしているため、これはThe Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>)
の結果動的にdiv
をコードの背後のtd
タグに追加します。私はimg
自体を直接変更していません。td
です。
私はコードビハインドから変更ないだ画像にまったく同じことを行うと、私は期待して正確にどのように動作し、次のHTML、取得:私の質問
<td id="MainContent_scorpio_tdR1Day3" style="vertical-align: top;">
<div style="width: 100%; height: 15px">
<img hidden = "hidden" title="Click to add pattern" align="right" id="imgR1Day3" style="cursor: pointer;" alt="Add" src="../Images/Add.gif">
</div>
</td>
を、
- これをCSSの一部として実行したとき、なぜ
<%: ... %>
を値に置き換えずにリテラルテキストとしてレンダリングしましたか? The Controls collection cannot be modified...
例外を回避する方法はありますか?
また、ここで間違ったアプローチをとっていますか?たとえば、td
のdiv
と同じように、コードビハインドからこのdiv/imageを追加する必要がありますか?