2012-08-30 58 views
1

我有一個複選框,下拉列表和RadGrid中所需的字段validator。我想在選中複選框時啓用禁用必需的提交驗證器。現在,下面的Java腳本代碼在編輯模式下啓用和禁用所需的驗證器。但是當我點擊弧形網格編輯模式更新按鈕(複選框是未選中並且下拉框選中的值也是空的(「」),它等待很少的時間(可能做一個回發)並且激發所需的字段驗證器。再次Rad-grid編輯模式啓用通過java腳本禁用所需的提交驗證器複選框選擇

任何想法,爲什麼它表現得像是幫助感激

我從下面的鏈接得到了控制接入部分 Accessing Telerik RadGrid edit mode from javascript

我拉德格標記:。

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

這是我的Java腳本代碼:

// Enbable或禁用所需的字段校驗取決於複選框選擇

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

     } 
    } 

回答

1

請與下面的代碼片段嘗試。

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 + "');"); 

    } 
} 
+0

感謝Jayesh.This作品,但需要刪除必填字段valida tor並貼上標籤。 – mwinston

相關問題