Этот вопрос похож на этот вопрос , но большая разница в том, что CheckBoxList
находится в FormTemplate
у Телерка RadGrid
.
Я попробовал этот подход, но он не работает:
Проверка / снятие отметки со всех элементов в списке флажков ASP.NET с использованием jQuery
Java-скрипт для списка флажков в сетке editformsettings
Вот мой код:
<telerik:RadGrid ID="RadGrid1" runat="server" ... >
...
<MasterTableView ...>
...
<EditFormSettings EditFormType="Template">
<EditColumn UniqueName="EditCommandColumn1"></EditColumn>
<FormTemplate>
<table class="edit-table-rad" cellspacing="2" cellpadding="1" width="100%" border="0">
...
<tr>
<td align="left" width="200px">
<b>Languages:</b><br />
<asp:CheckBox ID="chbSelectAllLanguage" runat="server"
Text="Select All"
ClientIDMode="Static"/>
</td>
<td>
<asp:CheckBoxList ID="cblLanguage" runat="server"
DataSourceID="entityDataSourceLanguage"
DataTextField="LanguageName"
DataValueField="LanguageID"
RepeatColumns="4">
</asp:CheckBoxList>
</td>
</tr>
...
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
В приведенных выше примерах jQuery используется для получения CheckBox
и добавления функции click
. Но я не могу получить CheckBox
. Я попытался получить его по идентификатору и по cssclass, но я думаю, что CheckBox
в RadGrid FormTemplate
не находится в DOM во время document.ready
.
Есть ли способ выбрать / отменить выбор всех CheckBoxList
элементов, выбрав / отменив выбор одного CheckBox
?
РЕДАКТИРОВАТЬ ПОСЛЕ КОММЕНТАРИИ
Я не могу найти HTML FormTemplate
, прежде чем открыть форму редактирования. Когда форма открыта, HTML-код выглядит так:
<tr>
<td width="200px" align="left">
<b>Languages:</b>
<br>
<span class="chbSelectAllLanguage">
<input id="chbSelectAllLanguage" type="checkbox" name="ctl00$MainContent$rgSurvey$ctl00$ctl02$ctl04$chbSelectAllLanguage">
<label for="chbSelectAllLanguage">Select All</label>
</span>
</td>
<td>
<table id="ctl00_MainContent_rgSurvey_ctl00_ctl02_ctl04_cblLanguage" class="kipCheckBoxList">
<tbody>
<tr>
//the CheckBoxList generated data, like this:
<td>
<input id="ctl00_MainContent_rgSurvey_ctl00_ctl02_ctl04_cblLanguage_0" type="checkbox" value="1" name="ctl00$MainContent$rgSurvey$ctl00$ctl02$ctl04$cblLanguage$0">
<label for="ctl00_MainContent_rgSurvey_ctl00_ctl02_ctl04_cblLanguage_0">English</label>
</td>
...
</tr>
...
</tbody>
</table>
</td>