日期:2014-05-17  浏览次数:20469 次

使用过DevExpress控件的大虾请进
最近试着使用DevExpress控件来编写web程序,发现它在某些方面确实比.net的本身的控件强大。

但在使用的过程中也出现了一些问题,以下问题,请大虾们指点一下。

我在用DevExpress改进一个模块的时候发现,原来的代码报错了。我在原来的页面中定义了一个
函数,如下:
    <script language="JavaScript" type="text/JavaScript">
        function DeleteRecord(DelMessage) {
            if (confirm(DelMessage)) {
                document.getElementById('<% =hfConfirmTime.ClientID %>').value = "1";
            }
            else {
                document.getElementById('<% =hfConfirmTime.ClientID %>').value = "0";
            }

            document.getElementById("ibtGenerate").click();
        }
    </script>
在没有用DevExpress控件之前,是没有错的。

在加了DevExpress控件后,页面文件中添加了一些如下的代码:
<%@ Register assembly="DevExpress.Web.v10.1, Version=10.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxTabControl" tagprefix="dx" %>
<%@ Register assembly="DevExpress.Web.ASPxEditors.v10.1, Version=10.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxEditors" tagprefix="dx" %>
<%@ Register assembly="DevExpress.Web.v10.1, Version=10.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxPager" tagprefix="dx" %>
<%@ Register assembly="DevExpress.Web.v10.1, Version=10.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web.ASPxClasses" tagprefix="dx" %>

此时,如果再运行这个页面时,IE就报如下错误:
控件包含代码块(即 <% ... %>),因此无法修改控件集合。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Web.HttpException: 控件包含代码块(即 <% ... %>),因此无法修改控件集合。

如果我去掉自定义函数中的<%... %>,打开页面就不报错了,但运行就不是原来的结果了。

请问这个问题该如何解决?


------解决方案--------------------
用ClientScript.RegisterClientScriptBlock方法注册你的脚本块,免去在页面写“<% ... %>”