次の C# コードがあります (動作します):
// Write data into the checkboxes
RepeaterVocabularyWords.DataSource = new[] { correctWord1, correctWord2, incorrectWord1, incorrectWord2 };
RepeaterVocabularyWords.DataBind();
// Get data from the checkboxes
protected void ButtonAccept_Click(object sender, EventArgs e)
{
foreach (RepeaterItem item in RepeaterVocabularyWords.Items)
{
if (item.ItemType == ListItemType.Item
|| item.ItemType == ListItemType.AlternatingItem)
{
CheckBox CheckBoxVocabularyWord = (CheckBox)item.FindControl("CheckBoxVocabularyWord");
if (CheckBoxVocabularyWord.Checked)
{
}
}
}
そして、JQuery コードを使用した次の ASP (動作します):
$(document).ready(function () {
$("input[id$='ButtonAccept']").click(function (e) {
if ($('span.storeCheck input:checked').length != 2) {
alert("You have to choose only the 2 words that means the same!");
e.preventDefault();
}
次に、「span class="storeCheck"..」という行を書くと、上記のリピーター コードは機能しますが、上記の C# コードは機能しません。
<asp:Repeater ID="RepeaterVocabularyWords" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<<span class="storeCheck"><input runat="server" type="checkbox" ID="CheckBoxVocabularyWord" title="<%# Container.DataItem %>" /></span>
</ItemTemplate>
</asp:Repeater>
対照的に、"asp:CheckBox ID=".." と書くと、上記の c# コードは機能しますが、jQuery のものは機能しません。
<asp:Repeater ID="RepeaterVocabularyWords" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<asp:CheckBox ID="CheckBoxVocabularyWord" runat="server" Text="<%# Container.DataItem %>" />
</ItemTemplate>
</asp:Repeater>
どうすれば両方を機能させることができますか?