2016-04-21 226 views
1

我剛剛開始了一個項目,我們的BA人需要我在特定時間內禁用所有aspxgridviews。在服務器端禁用aspxgridviews,如何在客戶端處理?

C# 
    public void CutoffDateTime() 
     { 
      //DateTime today = DateTime.Now; // this will be for live code 
      DateTime today = new DateTime(2016, 4, 15, 7, 00, 00); // for testing 
      DateTime cutoff = new DateTime(2016, 4, 19, 7, 00, 00); 

      if (today >= cutoff.AddDays(7)) 
      { 
       cutoff = cutoff.AddDays(7); 
      } 
      // if today is past cutoff, disable all grids 
      if (today < cutoff.AddHours(-55)) 
      { 
       gvProduction.Enabled = false; 
       gvProductionSummary.Enabled = false; 
       gvDowntimeSummary.Enabled = false; 
       gvNonProd.Enabled = false; 
       cbCutoff.Checked = false; 
      } 
      else 
       cbCutoff.Checked = true; 
    } 

的網格被禁用正確,但是這會影響調用grid.Refresh()方法的一些客戶端代碼。

我已經添加了複選框,作爲一種無形的控制,這樣我可以輕鬆地與客戶端接口和我想要補充:

JS 
    if (cbCutoff.GetChecked()==true) 
     grid.Refresh(); 

但我仍然得到的JavaScript運行時錯誤,指出'cbCutoff未定義',但我想不出另一種方式來完成這項任務。

感謝

編輯

這裏是我試圖通過DexExpress' GetChecked修復()方法返回true,如果檢查我的asp.net標記的一部分:

ASPX

<ClientSideEvents ActiveTabChanged="function(s, e) { 
    if (e.tab.index.toString() == 1 && cbCutoff.GetChecked()==true) 
     gridProductionSummary.Refresh(); 
}" /> 
+0

您可以發佈頁面的「ASPX」標記嗎? – Seany84

+0

你可以將GridView的可見性設置爲「False」嗎? 'gvProduction.Visible = false;'控件將呈現,並且會傳遞給客戶端,但不會顯示。除非你根本不希望這些數據出現在客戶端界面中。 –

+0

對不起,我誤解了這個問題。在ASP.Net中,你需要在JS中傳遞控件的ID,但它不是你輸入到控件中的ID,因爲它被服務器渲染爲不同的東西。在您的JS代碼中,您需要執行類似<%= cbCutoff.ClientID%>的操作,它將填充呈現頁面上的實際ID字段。 –

回答

0

使用

固定3210
if (cb.GetChecked()) 
grid.Refresh(); 

並將該複選框設置爲在服務器端啓用

相關問題