【问题标题】:Update textbox outside telerik radgrid using a value from column inside telerik radgrid使用 Telerik radgrid 内的列中的值更新 Telerik radgrid 外的文本框
【发布时间】:2012-12-26 20:44:21
【问题描述】:

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

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

请协助。

安全。

【问题讨论】:

    标签: c# asp.net telerik-grid


    【解决方案1】:

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

    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;
    } 
    

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

    【讨论】:

      【解决方案2】:

      试试这个:

      itemTemplate 复选框中,使auto-postback trueonCheckedChange 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 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.
      }
      

      谢谢

      【讨论】:

      • 感谢您的解决方案。 @paritosh 客户端和侧面解决方案在我的情况下都不起作用。这是供您参考的代码:
      • code function Checked() { var grid = $find("");变量计数 = 0; var masterTable = grid.get_masterTableView(); for (var i = 0; i
      • code
      • 解决方案不起作用,因为我不知道你的真实代码是什么......我给了你一个想法......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多