0

ASP.NET を使用しています。リピーターを使用して画像を表示しています。また、各画像のチェック ボックスも使用しています。

個々の画像を選択し、画像 ID ごとに値を更新するにはどうすればよいですか?

私のコードは次のとおりです。

 protected void Button3_Click(object sender, EventArgs e)
        {
            foreach (RepeaterItem ritem in Repeater1.Items)
            {
                CheckBox btn = ritem.FindControl("CheckBox1") as CheckBox;
                if (btn.Checked == true)
                {
                    string chrck = btn.Text;
                }
            }
        }

これは私が使用している私のコントロールです:

    <asp:Repeater ID="Repeater1" runat="server">
         <ItemTemplate>
               <br />
               <img ID="ImageZoom" runat="server" 
                    src='<%# DataBinder.Eval(Container.DataItem, "ImageUrl") %>'  
                    style="display: inline; height:auto; left: 0pt; top: 0pt; 
                    width:auto;" />
                <asp:CheckBox ID="CheckBox1" runat="server" Enabled="True" 
                      Text='<%# DataBinder.Eval(Container.DataItem, "ImageId") %>' 
                      oncheckedchanged="RepeaterCheckBox_CheckedChanged"/> 
          </ItemTemplate>
    </asp:Repeater>
    <br />
    <br />
    <asp:Button ID="Button1" runat="server" onclick="Button3_Click" Text="Pint" />

しかし、C# コードでは、常にIsChecked value = falseを取得しています。チェックボックスをオンにしても、パイントボタンをクリックしても、 false しか得られません。どうすればこれを解決できますか? チェックボックスをオンにすると、true が返されます。

4

1 に答える 1

0

ItemDataBoundとFindControlで試してください

void Repetarer_ItemDataBound(Object Sender, RepeaterItemEventArgs e) 
{
          if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
          {
               var control = e.Item.FindControl("CheckBox1") as CheckBox;      
               string result = control.Text;
               ..... 
          }
       }    
于 2012-08-22T07:51:18.507 に答える