VS2010笨拙地渲染控件JS

时间:2010-05-05 10:34:28

标签: asp.net javascript visual-studio-2010

我在VS2010中创建了一个网站项目。我的控件无法正确呈现。生成的JS格式不正确。这是一个例子:

    protected void Page_PreRender(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            objListBox.Attributes.Add("onchange", "Control_doPostBack('" + objListBox.ClientID + "','ListBox_OnClick'); return false;");
            objListBox.Attributes.Add("onblur", "Control_doPostBack('" + trListbox.ClientID + "','ListBox_OnBlur'); return false;");
            img.Attributes.Add("onclick", "Control_doPostBack('" + trListbox.ClientID + "','IMG_OnClick'); return false;");
        }
    }

,响应控件呈现为:

<select size="4" name="ctl00$PlaceHolder_Content$drop$objListBox" onchange="Control_doPostBack(&#39;PlaceHolder_Content_drop_objListBox&#39;,&#39;ListBox_OnClick&#39;); return false;setTimeout(&#39;__doPostBack(\&#39;ctl00$PlaceHolder_Content$drop$objListBox\&#39;,\&#39;\&#39;)&#39;, 0)" id="PlaceHolder_Content_drop_objListBox" onblur="Control_doPostBack(&#39;PlaceHolder_Content_drop_trListbox&#39;,&#39;ListBox_OnBlur&#39;); return false;" style="position:absolute;"> 

 </select>

正如您所看到的,'呈现给&#39,这会搞砸浏览器。

是否有对msbuild或项目属性内部的调整?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

出于好奇,如果你改变了什么呈现

   objListBox.Attributes.Add("onchange", "Control_doPostBack('" + objListBox.ClientID + "','ListBox_OnClick'); return false;");

   objListBox.Attributes.Add("onchange", "Control_doPostBack(\'" + objListBox.ClientID + "\',\'ListBox_OnClick\'); return false;");

答案 1 :(得分:0)

浏览器出错。 name="a'b'c"name="a&#39;b&#39;c"是指定值为a'b'c的属性的两种完全等效的方法。