zoukankan      html  css  js  c++  java
  • 同一个页面放置多个SPGridView出现的问题

    最近做的项目中出现了一个需要,在同一页面中放多个SPGridView来显示数据.结果在设置菜单的时候惨剧发生了.
    我将SPGridView控件包装到了一个用户控件中,然后将该用户控件多次显示,结果发现在动态改变SPGridView控件的下拉菜单的菜单项的时候永远只有第一个控件的菜单项能发生改变. 
    这个问题苦苦的纠缠了我好几天之后我只有无奈的选择了妥协,将用户控件拆分成多个来显示数据,将不同的视图绑定不同的菜单项,却悲剧的发现显示结果还是一样.╮(╯▽╰)╭
    我曾经一度以为是MOSS对用户控件的输出缓存导致的这个问题,但是我现在使用的不是同一个用户控件了,这个问题却还是存在(真是顽强啊.......),经过我一番查找和分析之后,在不懈的努力下发现,原来是SPMenuField控件引用的MenuTemplateID相同导致的 (我勒个汗啊......).
    既然问题的原因已经找到了.那么接下来的工作就水到渠成了.我将用户控件的ID与MenuTemplate的ID在后台进行拼接形成一个唯一的ID,并且将这个ID分别赋值给MenuTemplate控件和SPGridView控件中的SPMenuField控件的MenuTemplateID属性,这样一来问题就解决了.
    经过测试,显示成功.

    总结:如果仅仅使用SPGridView控件来显示值的话完全可以放心的在一个页面中使用多个(当然,也完全可以用GridView来代替),但是要使用下拉菜单的话就必须保证每一个SPGridView所引用的MenuTemplateID保持唯一,否则后台对这个SPGridView的菜单项所做的改变就可能会失效(如果所有项都是一样的话理所当然的可以不用理会这个问题).

  • 相关阅读:
    学习MeteoInfo二次开发教程(十一)
    学习MeteoInfo二次开发教程(十)
    学习MeteoInfo二次开发教程(九)
    学习MeteoInfo二次开发教程(八)
    linux 03 命令 续
    linux 02 基础命令
    linux 01 基础命令
    第九节课 迭代器生成器、模块和包
    第八节课 文件、异常、文件的输入输出
    第七节课 内置函数、作用域、闭包、递归
  • 原文地址:https://www.cnblogs.com/masahiro/p/10130388.html
Copyright © 2011-2022 走看看