ASP.NET项目中不允许使用Visual Studio警告内容

人气:858 发布:2022-10-16 标签: javascript asp.net visual-studio-2008 devexpress

问题描述

我上个月刚开始做程序员,所以我会有很多新手问题,敬请关注……我现在正在修改提供的模板(来自DevExpress),以便在Visual Studio 2008上使用ASP.NET 2.0创建新的Web表单。

当Web表单的功能存在时,我正在处理九十多条警告消息,其中大多数来自提供的模板。

其中一个让我困惑了一段时间,就是这个: "警告75元素‘ClientSideEvents’的开始标记和结束标记之间不允许有内容。"

代码如下:

<dxe:ASPxListBox id="edtMultiResource" runat="server" width="100%" 
SelectionMode="CheckColumn" DataSource='<%# ResourceDataSource %>' Border-BorderWidth="0">
    <ClientSideEvents SelectedIndexChanged="function(s, e) {
    var resourceNames = new Array();
        var items = s.GetSelectedItems();
        var count = items.length;
        if (count > 0) {
            for(var i=0; i<count; i++) 
                _aspxArrayPush(resourceNames, items[i].text);
        }
        else
            _aspxArrayPush(resourceNames, ddResource.cp_Caption_ResourceNone);
        ddResource.SetValue(resourceNames.join(', '));
    }"></ClientSideEvents>
</dxe:ASPxListBox>

我自己看不出代码有任何错误,所以请在这里帮助我。

推荐答案

切坦·萨斯特里奇在他删除的答案中走上了正确的道路。您放入Html属性中的脚本不是Html编码的。

您必须对在HTML中具有特殊含义的任何字符进行编码,如<>&和属性值的"分隔符:

<dxe:ASPxListBox id="edtMultiResource" runat="server" width="100%" 
SelectionMode="CheckColumn" DataSource='<%# ResourceDataSource %>' Border-BorderWidth="0">
                                <ClientSideEvents SelectedIndexChanged="function(s, e) {
                                var resourceNames = new Array();
                                    var items = s.GetSelectedItems();
                                    var count = items.length;
                                    if (count &gt; 0) {
                                        for(var i=0; i&lt;count; i++) 
                                            _aspxArrayPush(resourceNames, items[i].text);
                                    }
                                    else
                                        _aspxArrayPush(resourceNames, ddResource.cp_Caption_ResourceNone);
                                    ddResource.SetValue(resourceNames.join(', '));
                                }"></ClientSideEvents>
                            </dxe:ASPxListBox>

847