这是概述: 1. RadGrid 是使用数据库中的值生成的 2. RadGrid 中的列之一是“itemtemplate checkbox column”,在加载时未选中 3. RadGrid 外部有一个文本框,需要使用以下值更新(总行数检查)
如果用户选中复选框,则必须将行数更新为文本框。
请协助。
安全。
这是概述: 1. RadGrid 是使用数据库中的值生成的 2. RadGrid 中的列之一是“itemtemplate checkbox column”,在加载时未选中 3. RadGrid 外部有一个文本框,需要使用以下值更新(总行数检查)
如果用户选中复选框,则必须将行数更新为文本框。
请协助。
安全。
这是一个解决方案,应该尽快触发复选框已选中或未选中。
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;
}
如果您有任何疑虑,请告诉我。
尝试这个 :
在itemTemplate
复选框中制作auto-postback true
并onCheckedChange event
计算已检查的行数Grid
并使用该数字进行更新textbox's text
。例如 :
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection" AutoPostBack="True" />
</ItemTemplate>
现在,取 aRadAjaxManager
和它的ajax settings
add thegridview
并在pass the and中传递textbox
名称。例如 :UpdatedControls
textbox's Id
grid'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.
}
谢谢