请教一个webpart的问题

huakaihualuo0216 2015-04-16 03:13:49
sharepoint 2013的一个webpart,上面有按钮,用来切换数据分页的。现在的问题是,如果匿名用户访问,点击按钮的时候,会出现下面的错误:
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

无法在 Web 部件“g_c005c31e_3580_4284_940d_0b73fb760a91”上设置 Visible 属性。只能在独立 Web 部件上设置该属性。
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 无法在 Web 部件“g_c005c31e_3580_4284_940d_0b73fb760a91”上设置 Visible 属性。只能在独立 Web 部件上设置该属性。

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:


[InvalidOperationException: 无法在 Web 部件“g_c005c31e_3580_4284_940d_0b73fb760a91”上设置 Visible 属性。只能在独立 Web 部件上设置该属性。]
System.Web.UI.WebControls.WebParts.WebPart.PreRenderRecursiveInternal() +2468350
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Control.PreRenderRecursiveInternal() +222
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4297



--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34212

出现问题的原因,是页面上有一个网站源 webpart,匿名用户是看不到的。如果登录用户,就不会出现问题。请教各位,为什么按钮事件,会影响这个wartpart,是不删除网站源 webpart的情况下,如何用匿名用户,点击按钮事件,不出错呢?
...全文
199 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
我在想,是不是如果不刷新页面,就不会有问题了。我的所有内容都是动态加载的。
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 7 楼 linyustar 的回复:
实在搞不定的话,把源码放上来吧,大家可以帮你看看...这么猜实在不是个事儿..
刚刚又放了一个只有按钮的webpart,没有任何事件,只要把这个webpart,加到带有网站源webpart(系统自带的)的页面上,匿名用户只要单击这个按钮,就会报错。 [ToolboxItemAttribute(false)] public class buttonTest : WebPart { protected override void CreateChildControls() { LinkButton btn = new LinkButton(); btn.Text = "text"; this.Controls.Add(btn); } } }
霖雨 版主 2015-04-17
  • 打赏
  • 举报
回复
实在搞不定的话,把源码放上来吧,大家可以帮你看看...这么猜实在不是个事儿..
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 4 楼 FoxDave 的回复:
[quote=引用 2 楼 xqx8213 的回复:] [quote=引用 1 楼 linyustar 的回复:] 建议先删掉网站源WebPart,看看是不是两边都有问题; 我怀疑有部分东西没有签入,涉及到了权限问题,最好还是能用vs调试一下,如果不能进入断点,还是应该删掉网站源WebPart先试试,避免其他部件影响
用vs调试了代码肯定没有问题;删掉网站源WebPart,也不会出现问题。后来我把自己webpart所有内容都清了,只加了一个按钮,没有事件,匿名用户只要点这个按钮就会出现上面的问题。本来两个没有关联的webpart,为什么会出现这样的问题呢?[/quote] 加的asp:button吧,也走后台的啊,会走webpart类的一些东西[/quote] 那怎么才能解决呢?
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 3 楼 shrenk 的回复:
你是如何控制匿名用户看不到的?是把webpart的Visible属性设置为true吗? 如果是这样,把Webpart.Visible=False改为Webpart.Hidden=True 参考:https://social.msdn.microsoft.com/Forums/sharepoint/zh-CN/65688458-0ecc-4458-b4b1-2d7810a76138/the-visible-property-cannot-be-set-on-web-part-gfd184e050c1343479544dfe6a8f6ce41-it-can?forum=sharepointdevelopmentprevious
网站源webpart是系统自带的,因为匿名用户是看不到的,登录用户才可以写新闻源。就是说如果页面上有自带的这个网站源webpart,再加一个带有按钮的webpart,匿名用户只有点这个按钮就会报错。找不到原因了。
Justin-Liu 2015-04-17
  • 打赏
  • 举报
回复
引用 2 楼 xqx8213 的回复:
[quote=引用 1 楼 linyustar 的回复:] 建议先删掉网站源WebPart,看看是不是两边都有问题; 我怀疑有部分东西没有签入,涉及到了权限问题,最好还是能用vs调试一下,如果不能进入断点,还是应该删掉网站源WebPart先试试,避免其他部件影响
用vs调试了代码肯定没有问题;删掉网站源WebPart,也不会出现问题。后来我把自己webpart所有内容都清了,只加了一个按钮,没有事件,匿名用户只要点这个按钮就会出现上面的问题。本来两个没有关联的webpart,为什么会出现这样的问题呢?[/quote] 加的asp:button吧,也走后台的啊,会走webpart类的一些东西
reejayyang 2015-04-17
  • 打赏
  • 举报
回复
你所谓的网站源webpart里面应该有什么匿名用户看不到的信息吧。然后你按钮的回调事件估计触发了网站源webpart的加载。建议写简单的js加html的webpart吧,执行动作就用ajax吧
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 14 楼 linyustar 的回复:
我怀疑错误是由于postback引起的,主要还是网站源,没用过这个部件,不行把网站源删了吧,或者用其他方式实现网站源的功能,这个部件我是没什么印象。
应该是这样吧,后来找了一段局部更新的代码,匿名用户运行了没有反应。是不是sharepoint页面上设置了什么。一头雾水。不管怎样,还是谢谢了。
霖雨 版主 2015-04-17
  • 打赏
  • 举报
回复
我怀疑错误是由于postback引起的,主要还是网站源,没用过这个部件,不行把网站源删了吧,或者用其他方式实现网站源的功能,这个部件我是没什么印象。
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 12 楼 linyustar 的回复:
[quote=引用 11 楼 xqx8213 的回复:] [quote=引用 10 楼 linyustar 的回复:] [quote=引用 9 楼 xqx8213 的回复:] 我在想,是不是如果不刷新页面,就不会有问题了。我的所有内容都是动态加载的。
单击事件呢?怎么不见。。你单击事件没写?[/quote] 嗯,什么也没有,单击也会出错,所以应该不是代码的事。[/quote] 我的意思是,你button 的单击事件呢,你可以什么都不写,你的事件呢?方法呢?加上随便alert一下试试?![/quote] 又重新写了一下,还是出现相同的错误,只是匿名用户会出错,如果把网站源webpart删除了也不会出错。弄不明白了,大神指点。 public class buttonTest : WebPart { LinkButton btn; Label lbl; protected override void CreateChildControls() { btn = new LinkButton(); btn.Text = "test"; btn.Click += btn_Click; lbl = new Label(); lbl.Text = "test"; this.Controls.Add(btn); this.Controls.Add(lbl); } void btn_Click(object sender, EventArgs e) { lbl.Text = DateTime.Now.ToString(); } } }
霖雨 版主 2015-04-17
  • 打赏
  • 举报
回复
引用 11 楼 xqx8213 的回复:
[quote=引用 10 楼 linyustar 的回复:] [quote=引用 9 楼 xqx8213 的回复:] 我在想,是不是如果不刷新页面,就不会有问题了。我的所有内容都是动态加载的。
单击事件呢?怎么不见。。你单击事件没写?[/quote] 嗯,什么也没有,单击也会出错,所以应该不是代码的事。[/quote] 我的意思是,你button 的单击事件呢,你可以什么都不写,你的事件呢?方法呢?加上随便alert一下试试?!
huakaihualuo0216 2015-04-17
  • 打赏
  • 举报
回复
引用 10 楼 linyustar 的回复:
[quote=引用 9 楼 xqx8213 的回复:] 我在想,是不是如果不刷新页面,就不会有问题了。我的所有内容都是动态加载的。
单击事件呢?怎么不见。。你单击事件没写?[/quote] 嗯,什么也没有,单击也会出错,所以应该不是代码的事。
霖雨 版主 2015-04-17
  • 打赏
  • 举报
回复
引用 9 楼 xqx8213 的回复:
我在想,是不是如果不刷新页面,就不会有问题了。我的所有内容都是动态加载的。
单击事件呢?怎么不见。。你单击事件没写?
计算机器 2015-04-16
  • 打赏
  • 举报
回复
你是如何控制匿名用户看不到的?是把webpart的Visible属性设置为true吗? 如果是这样,把Webpart.Visible=False改为Webpart.Hidden=True 参考:https://social.msdn.microsoft.com/Forums/sharepoint/zh-CN/65688458-0ecc-4458-b4b1-2d7810a76138/the-visible-property-cannot-be-set-on-web-part-gfd184e050c1343479544dfe6a8f6ce41-it-can?forum=sharepointdevelopmentprevious
huakaihualuo0216 2015-04-16
  • 打赏
  • 举报
回复
引用 1 楼 linyustar 的回复:
建议先删掉网站源WebPart,看看是不是两边都有问题; 我怀疑有部分东西没有签入,涉及到了权限问题,最好还是能用vs调试一下,如果不能进入断点,还是应该删掉网站源WebPart先试试,避免其他部件影响
用vs调试了代码肯定没有问题;删掉网站源WebPart,也不会出现问题。后来我把自己webpart所有内容都清了,只加了一个按钮,没有事件,匿名用户只要点这个按钮就会出现上面的问题。本来两个没有关联的webpart,为什么会出现这样的问题呢?
霖雨 版主 2015-04-16
  • 打赏
  • 举报
回复
建议先删掉网站源WebPart,看看是不是两边都有问题; 我怀疑有部分东西没有签入,涉及到了权限问题,最好还是能用vs调试一下,如果不能进入断点,还是应该删掉网站源WebPart先试试,避免其他部件影响

3,242

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 SharePoint
社区管理员
  • SharePoint社区
  • 霖雨
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧