此问题与this question类似,区别在于CheckBoxList
位于Telerk FormTemplate
的{{1}}。
我试过这种方法,但它们不起作用:
Check/Uncheck all Items in an ASP.NET CheckBox List using jQuery
Java Script for checkbox list in grid's editformsettings
这是我的代码:
RadGrid
上面的示例使用jQuery获取<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>
并添加CheckBox
函数。但我无法得到click
。我尝试通过ID和cssclass获取它,但我认为RadGrid的CheckBox
中的CheckBox
在FormTemplate
时不在DOM中。
有没有办法通过选择/取消选择单document.ready
来选择/取消选择所有CheckBoxList
项?
评论后编辑
在打开编辑表单之前,我找不到CheckBox
的HTML。当表单打开时,HTML就是:
FormTemplate
答案 0 :(得分:1)
我找到了答案!诀窍是将<script>
标记放在<telerik:RadCodeBlock ID="RadCodeBlock" runat="server">
标记内,然后将此代码添加到ItemDataBound
的{{1}}事件中:
RadGrid
然后选择/取消选择的功能是这样的:
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem geiItem = e.Item as GridEditableItem;
CheckBox chbSelectAllLanguage = geiItem.FindControl("chbSelectAllLanguage") as CheckBox;
CheckBoxList cblLanguage = geiItem.FindControl("cblLanguage") as CheckBoxList;
chbSelectAllLanguage.Attributes.Add("onclick", "javascript:SelectDeselect('" + chbSelectAllLanguage.ClientID + "','" + cblLanguage.ClientID + "')");
}