webpart 常见的一些问题

http://blog.csdn.net/sgear/archive/2008/04/07/2257685.aspx 

1.此页不支持指定的显示模式。请确保已启用个性化设置并且此页上存在相应的区域 .

这个问题很奇怪,我很纳闷,cs代码无问题,webconfig里面也写了<personalization defaultProvider="AspNetSqlPersonalizationProvider">,那么为什么报错?结果再我拖了相关的CatalogZone和EditorZone后解决....页面上没有CatalogZone和EditorZone,是不可以webPartManager1.DisplayMode == WebPartManager.CatalogDisplayMode这样改模式的,没有相关的zone区域,只能改成DesignDisplayMode这个模式.其它的模式就出错.

2.用户控件不显示的问题.

设计界面可以正常看到,ie就看不到了.后来发现,原来是数据控件的问题.像FormView这样的数据控件,如果数据库里一条记录都没有,就不显示数据,连<ItemTemplate>中文本都不显示...这个问题折腾我半天,我在<ItemTemplate>写了些文本,我想,绑定没错,就是数据库没数据,但这是文本,又不从数据库读,结果我纳闷了半天...

3.webzone里webpart的高宽问题.

这个问题恐怕得我能够很好的掌握自定义控件才能解决了.问题描述:在同一个webzone里,拖个日历控件,再随便拖个用户控件,日历控件在外观编辑下可以改变高宽,撑大webzone,用户控件却不能,这里产生的是2个问题,一个是怎样让用户控件能改变高和宽,另一个是webpart究竟怎么回事(随便拖个webzone区域,然后拖个日历控件,当日历控件改变大小时候,表面上没有问题,但是,回vs2005,把webzone区域手动拖大一些,再到IE里编辑日历控件,把日历外观的高宽设置很小,结果...)

4.此页当前禁用指定的显示模式。请确保为当前用户启用了个性化设置。
参数名: value

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: 此页当前禁用指定的显示模式。请确保为当前用户启用了个性化设置。
参数名: value


搜索到的解决方法:

(一)先把web.config文件改成如下:
<connectionStrings>
  <clear/>
    <add name="LocalSqlServer" connectionString="data source=192.168.0.200;database=aspnetdb;user id=sa;password=manager"/>
 </connectionStrings>

<authentication mode="Forms">
      <forms name="auth" loginUrl="Default.aspx" timeout="30" defaultUrl="www/MainPage.aspx"></forms>
  </authentication>
   
  <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
  <webParts enableExport="true">
   <personalization defaultProvider="AspNetSqlPersonalizationProvider">
       
   </personalization>
  </webParts>
  <membership>
   <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" applicationName="/"/>
   </providers>
  </membership>

(二)在登录页的登录按钮事件中加上如下代码:

              FormsAuthentication.SetAuthCookie(Session["username"].ToString(), true);
                if (curUser.Username == "管理员")

                    Response.Redirect("www/center/manage.htm");
                else
                {
                   
                    Response.Redirect("www/MainPage.aspx");
                }

我的方法:我把验证模式改为Windows后发现又能正常使用了。于是明白了是membership设置出的问题。

再web.config中加入正确的设置后问题解决。

posted @ 2008-04-27 00:24  lsjwzh  阅读(431)  评论(0编辑  收藏  举报