当第二次单击GridView时,Pageload函数没有调用

时间:2013-02-15 05:46:00

标签: c# asp.net sql-server-2008-r2

错误消息

  

无法加载视图状态。正在加载视图状态的控制树必须与在上一个请求期间用于保存视图状态的控制树匹配。例如,在动态添加控件时,回发期间添加的控件必须与cont的类型和位置匹配

问题是 Pageload 函数未被调用,当在 GridView 上再次单击时, GridView 列是linkBut​​tons。它有多个带有linkBut​​tons的列。单击gridview时,它将重定向到linkbutton功能。

首先点击工作正常,问题出在第二次点击。

如果调用了pageload,我的问题就解决了 我试过谷歌搜索,我无法找到解决方案。 帮帮我。

3 个答案:

答案 0 :(得分:0)

当您动态添加控件时,会出现您提到的错误。似乎你在第一个PortBack上添加了一些控件。

Asp.net需要你在之后的每个PostBack上添加控件。添加这些内容的最佳位置是Init

如果ViewState中的控制树与您在上一个响应中发送的控件树不匹配,则会出现错误。由于在Load之前调用LoadViewState,除非您解决此问题,否则Load将不会触发。

参考:Asp.net Page Lifecycle

答案 1 :(得分:0)

如果您想在每次重新加载页面时执行一段代码,请不要按如下方式编写代码

if(!isPostBack)
{ //code }

请勿写入!IsPostBack

答案 2 :(得分:0)

如果您不需要,请尝试将托管控件的PlaceHolder设置为EnableViewState =“False”,否则请查看Failed to load viewstate. The control tree into which viewstate is being loaded