【问题标题】:Rad-grid edit mode enable disable required filed validator through java script on check box selectionRad-grid 编辑模式启用在复选框选择时通过 javascript 禁用必填字段验证
【发布时间】:2012-08-30 18:46:44
【问题描述】:

我在 RadGrid 中有一个复选框、下拉列表和必填字段验证器。我想在复选框选择时为下拉菜单启用禁用所需的归档验证器。现在下面的 Java 脚本代码确实在编辑模式下启用和禁用所需的文件验证器。

但是当我单击 rad 网格编辑模式更新按钮(复选框未选中并且下拉框选择的值也为空(“”)时,它会等待一会儿(可能会回发)并再次触发必填字段验证器.

知道为什么会这样。帮助欣赏。

我从下面的链接获得了控制访问部分。 Accessing Telerik RadGrid edit mode from javascript

我的 Rad 网格标记:

 <EditItemTemplate>
<asp:CheckBox ID="chkConfigurable" runat="server" Checked='<%# Bind("Configurable") %>'
  </EditItemTemplate>  

这是我的 java 脚本代码:

// 启用或禁用必填字段验证器取决于复选框选择

    function EnableDisbaleConfigRfv(chkbx) {

        var grid = $find("<%=rgItems.ClientID %>");
        var masterTable = grid.get_masterTableView();
        // get the required field validator id from grid
        var rfv = $telerik.$(masterTable.get_element()).find('[id*="rfvddlConfigTeam"]')[0];

        // enable disable validator
        if (chkbx) {
            ValidatorEnable(rfv, true);
            ValidatorUpdateDisplay(rfv); // this one added after reading some posts but no luck.


        } else {
            ValidatorEnable(rfv, false);

        }
    }

【问题讨论】:

    标签: javascript gridview telerik telerik-grid


    【解决方案1】:

    请尝试以下代码 sn-p。

    js

     function ValidateValidation(cmb, chk, lbl) {
    
                cmb = $find(cmb);
                chk = document.getElementById(chk);
                lbl = document.getElementById(lbl);
                if (chk.checked) {
                    if (cmb.get_value() != null && cmb.get_value() != "" && cmb.get_selectedIndex() >= 0) {
                        debugger;
                        return true;
                    }
                    else {
                        lbl.style.display = '';
                        return false;
                    }
                }
                else {
                    lbl.style.display = 'none';
                    return true;
                }
    
    
            }
    

    aspx

     <telerik:GridTemplateColumn>
                        <EditItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" />
                            <telerik:RadComboBox ID="RadComboBox1" runat="server">
                                <Items>
                                </Items>
                            </telerik:RadComboBox>
                            <asp:Label ID="Label1" runat="server" ForeColor="Red" Text="your messege" Style="display: none;"></asp:Label>
                        </EditItemTemplate>
                    </telerik:GridTemplateColumn>
    

    aspx.cs

      protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridEditableItem && e.Item.IsInEditMode)
        {
            GridEditableItem item = e.Item as GridEditableItem;
            CheckBox CheckBox1 = item.FindControl("CheckBox1") as CheckBox;
            Label Label1 = item.FindControl("Label1") as Label;
            RadComboBox RadComboBox1 = item.FindControl("RadComboBox1") as RadComboBox;
    
            (item.FindControl("UpdateButton") as LinkButton).Attributes.Add("onclick", "return ValidateValidation('" + RadComboBox1.ClientID + "','" + CheckBox1.ClientID + "','" + Label1.ClientID + "');");
    
        }
    }
    

    【讨论】:

    • 感谢 Jayesh。这可行,但需要删除必填字段验证器并放置标签。
    猜你喜欢
    • 2015-09-07
    • 2011-09-18
    • 2011-10-09
    • 2018-02-10
    • 2018-09-18
    • 2018-05-10
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多