2010-05-05 40 views
1

我在VS2010中創建了一個網站項目。我的控件無法正確顯示。生產的JS格式不正確。這裏有一個例子: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這screwes了瀏覽器。

是否有對msbuild或項目屬性內的調整?

任何幫助,高度讚賞。

回答

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;"); 

呈現什麼?

+0

它呈現爲\ ' – 2010-05-05 12:35:11

0

瀏覽器出錯。 name="a'b'c"name="a&#39;b&#39;c"是指定值爲a'b'c的屬性的兩種完全等效的方法。

+0

是的,你是對的,它不應該有所作爲。但IE8有所作爲。 IE8引發JS錯誤。 – 2010-05-06 15:05:04