0

这是概述: 1. RadGrid 是使用数据库中的值生成的 2. RadGrid 中的列之一是“itemtemplate checkbox column”,在加载时未选中 3. RadGrid 外部有一个文本框,需要使用以下值更新(总行数检查)

如果用户选中复选框,则必须将行数更新为文本框。

请协助。

安全。

4

2 回答 2

0

这是一个解决方案,应该尽快触发复选框已选中或未选中。

function Checked() {
var grid = $find("<%=RadGrid1.ClientID %>");
var count = 0;
var masterTable = grid.get_masterTableView();
for (var i = 0; i < masterTable.get_dataItems().length; i++) {
    var gridItemElement = masterTable.get_dataItems()[i].findElement("chkToFind");
    if (gridItemElement.checked) {
        count++;
    }
}
//update the text box with count value
 txtBox.value=count;
} 

如果您有任何疑虑,请告诉我。

于 2012-12-26T12:39:50.713 回答
0

尝试这个 :

itemTemplate复选框中制作auto-postback trueonCheckedChange event计算已检查的行数Grid并使用该数字进行更新textbox's text。例如 :

<ItemTemplate>
    <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" />
</ItemTemplate>

现在,取 aRadAjaxManager和它的ajax settingsadd thegridview并在pass the and中传递textbox名称。例如 :UpdatedControlstextbox's Idgrid's Id

<AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="GridId">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="TextBoxId" LoadingPanelID="RadAjaxLoadingPanel1" />
        <telerik:AjaxUpdatedControl ControlID="GridId" LoadingPanelID="RadAjaxLoadingPanel1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
</AjaxSettings>

在 .cs 页面中

protected void ToggleSelectedState(object sender, EventArgs e)
{
    // Count the grid's checked rows and update texbox here.
}

谢谢

于 2012-12-26T12:44:21.023 回答