在Telerik的RadGrid的FormTemplate中选择asp.net CheckBoxList中的所有项目

时间:2011-12-02 11:08:18

标签: jquery telerik

此问题与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中的CheckBoxFormTemplate时不在DOM中。

有没有办法通过选择/取消选择单document.ready来选择/取消选择所有CheckBoxList项?

评论后编辑

在打开编辑表单之前,我找不到CheckBox的HTML。当表单打开时,HTML就是:

FormTemplate

1 个答案:

答案 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 + "')");
}