我在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('PlaceHolder_Content_drop_objListBox','ListBox_OnClick'); return false;setTimeout('__doPostBack(\'ctl00$PlaceHolder_Content$drop$objListBox\',\'\')', 0)" id="PlaceHolder_Content_drop_objListBox" onblur="Control_doPostBack('PlaceHolder_Content_drop_trListbox','ListBox_OnBlur'); return false;" style="position:absolute;">
</select>
正如您所看到的,'呈现给'
,这会搞砸浏览器。
是否有对msbuild或项目属性内部的调整?
非常感谢任何帮助。
答案 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'b'c"
是指定值为a'b'c
的属性的两种完全等效的方法。