0

エラーメッセージ

ビューステートの読み込みに失敗しました。ビューステートが読み込まれるコントロール ツリーは、前の要求でビューステートを保存するために使用されたコントロール ツリーと一致する必要があります。たとえば、コントロールを動的に追加する場合、ポストバック中に追加されたコントロールは、cont のタイプと位置と一致する必要があります。

問題は、 GridViewをもう一度クリックしたときにPageload関数が呼び出されないことです。GridView列は linkBut​​tons です。linkBut​​tons を持つ複数の列があります。グリッドビューをクリックすると、リンクボタン機能にリダイレクトされます。

最初のクリックでは正常に機能しますが、問題は2回目のクリックにあります。

pageload が呼び出された場合、私の問題は解決されます。
グーグルで試しましたが、解決策が見つかりません。手伝ってください。

4

3 に答える 3

0

コントロールを動的に追加すると、言及したエラーが発生します。最初の PortBack にいくつかのコントロールを追加しているようです。

Asp.net では、その後すべての PostBack にコントロールを追加する必要があります。これらを追加し直すのに最適な場所はInit.

ViewState のコントロール ツリーが、前の応答で送信したものと一致しない場合、エラーが発生します。Loadこれを解決しない限り、LoadViewState は前に呼び出されるため、起動しLoadません。

参照: Asp.net ページのライフサイクル

于 2013-02-15T06:02:49.040 に答える
0

コントロールをホストしている PlaceHolder を必要がない場合は EnableViewState="False" に設定してみてください。それ以外の場合は、Failed to load viewstate を確認してください。ビューステートが読み込まれるコントロール ツリー

于 2013-02-15T07:28:41.680 に答える
0

ページがリロードされるたびにコードを実行する場合は、次のようにコードを記述しないでください。

if(!isPostBack)
{ //code }

!IsPostBack には書き込まないでください

于 2013-02-15T06:24:53.960 に答える