2017-01-26 104 views
0

我希望我能正確解釋這一點。ViewState爲控件出現/在JavaScript控件下面出現

我在包含GridView的ASP.net(3.5)中有一個頁面。我已經實現了jQuery來凍結GridView的列和標題(我實現的jQuery可以在這裏找到:http://gridviewscroll.aspcity.idv.tw/)。

現在,令人沮喪的部分。我在頁面上放置的任何控件,在GridView上方維護視圖狀態。在GridView之後的任何控件在回發後失去視圖狀態。

<asp:TextBox ID="tbx_Value1" runat="server" /> 
<asp:TextBox ID="tbx_Value2" runat="server" /> 
<asp:GridView ID="gv_Data" runat="server" /> 
<asp:TextBox ID="tbx_Value3" runat="server" /> 

因此,在回傳tbx_Value1,tbx_Value2和GridView控件的視圖狀態被保留,但tbx_ValueValue3的視圖狀態會丟失。設置EnableViewState="true"不會改善這種情況。

jQuery的下載被稱爲在以下JavaScript:

<script type="text/javascript"> 
    var c = 0; 
    c = '<%=this.col %>'; 

    $(document).ready(function() { 

     gridviewScroll(c); 
    }); 

    function gridviewScroll(c) { 

     $('#<%=gv_Data.ClientID%>').gridviewScroll({ 
      width: 1350, 
      height: 330, 
      freezesize: c, 
      arrowsize: 30, 
      varrowtopimg: "../../../images/arrowvt.png", 
      varrowbottomimg: "../../../images/arrowvb.png", 
      harrowleftimg: "../../../images/arrowhl.png", 
      harrowrightimg: "../../../images/arrowhr.png", 
      headerrowcount: 1 
     }); 
    } 
</script> 

我在一個不知如何解決這個問題。我已經移動了我的控件,重新創建了頁面,重新構建了應用程序。所有這些都會返回相同的結果。所以,我只能假設它與JavaScript(或我正在使用的jQuery下載)有關。也許當它應用於頁面生命週期? JavaScript/jQuery不是我的強項,所以任何幫助將不勝感激。

謝謝。

+0

通過_Java_你的意思_JavaScript_?請具體說明。 –

+0

是的。這是我鏈接到的jQuery以及我在帖子中找到的javascript。 – TennesseePaul

+0

檢查jQuery是否將'input'字段移動到''標籤之外。最近有一個[類似的問題](http://stackoverflow.com/questions/41639331/gridview-rowcommand-not-firing),其中一個模式彈出窗口放置在窗體外的GridView。 – VDWWD

回答

0

我發現這個查詢的罪魁禍首。在這種情況下,Gridview是根據用戶輸入動態創建的。我沒有深究任何人會請求或需要一個非常大的GridView。然而,當他們這樣做時,這個Gridview的本質就是它,導致了很多控件被創建。

一旦我意識到發生了這種情況,我更新了web.config appSettings項:「aspnet:MaxHttpCollectionKeys」到更大的數字,但也限制了用戶可以請求的大小。

我來到這個解決方案通過這個帖子的方式: 'Operation is not valid due to the current state of the object' error during postback

相關問題