LinkButton回发报错"__doPostBack('……','')" 缺少对象

 

我今天发现一个隐藏很深Bug,在议程页面里查看议案信息并关闭,关闭时报错误缺少对象”__doPostBack,刚开始 因为我用系统的关闭按钮 也就是X 关闭,测不出问题,所以 怀疑是按钮问题,进过查看前台代码发现 缺少的对象是 GridSubject 也就是父页列表hrefURL __doPostBack(…………’’’)其中第一参数也和报错页面一致,所以我找到了原因所在,因为我们后台连接使用的是LinkButton,我尝试判断PostBack的第一参数是否存在,可以没有方法,(也许有,我没找到),我在寻找的时候发现,MSDN推荐用HyperLink代理LinkButton,发现很不错,没有href属性,也就不存在__doPostBack了,经测试 果然不再出错,可惜样式没有了,被主题覆盖,通过网络搜索发现 text-decoration:underline解决了。这里似乎解决完了,我怕关闭页面不能刷新,果然一测试,不能刷新。

 

 

最终解决

方法:

后台代码 在RowDataBound中

 

TableCell tc = e.Row.Cells[1];

                tc.SetDisplayText(14);

                e.Row.Cells[1].Controls.Clear();

                LinkButton link = new LinkButton();

                link.Text = tc.Text;

                link.ToolTip = tc.ToolTip;

                link.Style.Value = "text-decoration:underline;";

                e.Row.Cells[1].Controls.Add(link);

 

                link.Attributes["onclick"] =

                      string.Format(@"javascript:PopSub('{0}',this);"

                                    , e.Row.Cells[0].Text

                                    );

 

前台代码:

 

function PopSub(SubID,obj) {

    var Dom = Pop('~/Before/SubjectInfo.ascx|SubjectID=' + SubID, null,

    'dialogWidth:648px; dialogHeight:655px;center:yes;help:no;resizeble:yes;scroll:yes;status:no',

     '话题信息');

     //保存过话题信息的 Dom不是空

     var hrefStr = "javascript:__doPostBack('myPan$ucView_myPan$GridSubject$ctl03$ctl01','')";

     if(IsNull(Dom))

     {

        obj.removeAttribute("href");

        /* 由于 循环浪费时间方法和Try方法都不能解决 所以我采用了 去除href方式

        //用来浪费时间

        var i =0;

        var strin="";

       while (i<100000)

        {

            strin="UU"+i;

            i++

        }

        if(i==100000)

        {

          //

        }

       try

       {

        obj.setAttribute("href",hrefStr,true);

       }

       catch(e){}

        return false;

        */

     }

     else

     {

        obj.setAttribute("href",hrefStr,true);

     }

}

posted @ 2009-01-07 21:26  翔宇编程  阅读(2148)  评论(0编辑  收藏  举报
51CTO