首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

一个疑难有关问题,至今找不出原因在哪里,希望大家帮忙

2012-02-01 
一个疑难问题,至今找不出原因在哪里,希望大家帮忙!我用的是.net2003;我用个Repeater列出新闻的标题的列表

一个疑难问题,至今找不出原因在哪里,希望大家帮忙!
我用的是.net2003;
我用个Repeater列出新闻的标题的列表
<ItemTemplate>
<asp:HyperLink   CssClass= "webnews "   Target= "_blank "   ID= "HNews "   Runat= "server "> </asp:HyperLink>
</ItemTemplate>
然后在后台HNews.NavigateUrl   =   String.Format( "NewsDetail.aspx?NewsID={0} ",   ID);
在NewsDetail.aspx里我放了个名为CommentPart的用户控件用来发表评论,然后给它赋参数:
CommentPart   cp   =   new   CommentPart();
cp   =   (CommentPart)this.FindControl( "CommentPart1 ");
cp.NewsID   =   this.NewsID;
问题来了,第一次打开任何一个新闻详细界面的时候,都能正常显示,但是第二次打开新闻详细界面的时候会在cp.NewsID   =   this.NewsID;这句提示未将对象引用到实例。我试着排出有可能引发问题各种原因都失败了,请大家帮我找找是哪里的问题,谢谢!

[解决办法]
请检查cp是不是被你Dispose了??

一般运行后被释放的对象会造成只能运行一次。

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
联系方式:Q64180940(请清楚注明业务还是技术咨询) 全天在线
==================================================================
[解决办法]
编程需要学会中断,看看是那一个变量引发的故障;

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
联系方式:Q64180940(请清楚注明业务还是技术咨询) 全天在线
==================================================================
[解决办法]
cp = (CommentPart)this.FindControl( "CommentPart1 ");
这句执行后看看cp是否为null
另外就是this.NewsID是什么
[解决办法]
对了,用户控件是不能用 new 来动态加载滴,



CommentPart cp = Page.LoadControl( "CommentPart.ascx所在虚拟路径 ") as CommentPart;

[解决办法]
1。
UserControl 就没有实现 IDisposable 接口,不会有 Dispose 方法

2。
我是这样加载控件的:

CommentPart cp = new CommentPart();
cp = (CommentPart)this.FindControl( "CommentPart1 ");
=======

哪里加载的?CommentPart1 拽到 .aspx 的?

另外,这里 new 一个,纯属浪费

CommentPart cp = null;
cp = (CommentPart)this.FindControl( "CommentPart1 ");
[解决办法]
代码贴全点,不要忽略重点,一堆无用信息
[解决办法]
把NewsDetail里面的有的控件遍厲出來,看看CommentPart1對像是否還存在。
[解决办法]
if(!IsPostBack)
{
this.ShowNews ();
CommentPart cp = new CommentPart();
cp = (CommentPart)this.FindControl( "CommentPart1 ");
object o1 = cp;
cp.NewsID = this.NewsID;
}
当用户发表评论后,此段代码不会执行的哦,cp当然不会被加载的.
你这样动态的加载.cp的状态是不会被保存的哦.
所以这段代码应该放在!page.ispostback 的外面吧.
[解决办法]
if(!IsPostBack)
{
this.ShowNews ();
CommentPart cp = new CommentPart();
cp = (CommentPart)this.FindControl( "CommentPart1 ");
object o1 = cp;
cp.NewsID = this.NewsID;
}

这里只在页面第一次加栽时执行
[解决办法]
可能你需要用一下ViewState来保存一下你的值

热点排行