在 ItemTemplate 中的动态输入控件上添加事件

Add Event on a dynamic Input Control in an ItemTemplate

我有一个产品列表显示为输入(复选框),每次选择产品时我都需要添加一个事件,使用 VB.NET 中的 ASP.NET。

<ItemTemplate>
    <table border="0" cellpadding="0" cellspacing="0" align="left">                
        <tr>
            <td align="center" class="price" width = "200">
                <input id="Checkbox1" type="checkbox" name="<%#Eval("ProductCode").ToString%>" runat="server"/>
            </td>
       </tr>
   </table>
</ItemTemplate>

您可以将代码添加为 asp:checkbox 并使用 OnCheckedChanged 属性 还记得将 AutoPostBack 设置为 true。您不能将 id 设置为动态值,但您可以设置一个隐藏字段并使用此

例如

<asp:CheckBox ID="cb1" runat="server" OnCheckedChanged="Checkbox_Click" AutoPostBack="true"/>
<asp:HiddenField ID="hd1" runat="server" Value='<%# Eval("ProductCode") %>' />

然后在后面的代码中

Protected Sub Checkbox_Click(sender As Object, e As EventArgs)

    Dim s As CheckBox = CType(sender, CheckBox)

    Dim hd As HiddenField = s.NamingContainer.FindControl("hd1")

    Dim ProductCode As String = hd.Value


End Sub