1

ループ内で動的に作成されるチェックボックスのリストがあり、インラインコードで値を設定しようとすると、評価せずにインラインコードが表示されます。次に例を示します。

<ul>
   <%
    string testValue = string.Empty;
    for(int index = 0; index < 5; index++)
    {
        testValue = "blah" + index;
     %>
        <li>
            <input type="checkbox" runat="server" value="<%= testValue %>" />
        </li>
    <%
    }
     %>
</ul>

そして、ここに私が得ている出力があります:

<ul>        
<li>
   <input name="ctl00$MainContent$ctl00" type="checkbox" value="&lt;%= testValue %>" />
</li>

<li>
    <input name="ctl00$MainContent$ctl00" type="checkbox" value="&lt;%= testValue %>" />
</li>

<li>
     <input name="ctl00$MainContent$ctl00" type="checkbox" value="&lt;%= testValue %>" />
</li>

<li>
      <input name="ctl00$MainContent$ctl00" type="checkbox" value="&lt;%= testValue %>" />
</li>

<li>
      <input name="ctl00$MainContent$ctl00" type="checkbox" value="&lt;%= testValue %>" />
</li>
</ul>

誰かがこれで私を助けてくれますか?

4

3 に答える 3

2

既に使用しているのでrunat="server"、次のようにサーバー側のコントロールを使用して動的コンテンツを管理することをお勧めします。

<ul>
    <asp:Repeater ID="Repeater1" runat="server" 
                  OnItemDataBound="Repeater1_ItemDataBound">
        <ItemTemplate>
            <li>
                <asp:CheckBox id="check1" runat="server" />
            </li>
        </ItemTemplate>
    </asp:Repeater>
</ul>

リピーター ( ) をバインドすると、次のようにチェックボックスのプロパティにOnItemDataBoundアクセスできます。.Text

protected void Repeater1_ItemDataBound(Object sender, RepeaterItemEventArgs e) 
{
    // This event is raised for the header, the footer, separators, and items.
    // Execute the following logic for Items and Alternating Items.
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    {
        CheckBox theCheckBox = e.Item.FindControl("check1") as CheckBox;

        // Make sure we found the check box before we try to use it
        if(theCheckBox != null)
        {
            theCheckBox.Text = "Your Text Value Here";
        }
    }
}

注: コード ビハインドを使用すると、Visual Studio デバッガーの機能をより簡単に活用でき、IntelliSense を使用して入力ミスを減らし、実行時よりもコンパイル時により多くの問題を検出できます。

于 2013-10-16T03:10:12.643 に答える
-1

これはできません。PHP スタイルのように見えます。ASP.Net を使用している場合は、コード スタイルを完全に変更する必要があります。

于 2013-10-16T03:11:53.500 に答える