【发布时间】:2012-12-26 20:44:21
【问题描述】:
这里是概述: 1. RadGrid 是使用数据库中的值生成的 2. RadGrid 中的一列是“itemtemplate checkbox column”,在加载时未选中 3. RadGrid 外部有一个文本框,需要用以下值更新(检查总行数)
如果用户选中一个复选框,则必须将行数更新为文本框。
请协助。
安全。
【问题讨论】:
标签: c# asp.net telerik-grid
这里是概述: 1. RadGrid 是使用数据库中的值生成的 2. RadGrid 中的一列是“itemtemplate checkbox column”,在加载时未选中 3. RadGrid 外部有一个文本框,需要用以下值更新(检查总行数)
如果用户选中一个复选框,则必须将行数更新为文本框。
请协助。
安全。
【问题讨论】:
标签: c# asp.net telerik-grid
这是一个解决方案,应该尽快触发复选框已选中或未选中。
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>
现在,使用RadAjaxManager 和它的ajax settings 添加gridview 并在UpdatedControls 中传递textbox 名称,传递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.
}
谢谢
【讨论】:
code function Checked() { var grid = $find("");变量计数 = 0; var masterTable = grid.get_masterTableView(); for (var i = 0; i
code