在使用asp.net服務器端控件的時候,想要動態綁定控件某屬性的值,或者動態綁定控件事件方法的參數,例如一個<asp:RadioButton ID="RadioButton5" GroupName="option" Text="<%#Eval("Answer")%>" runat="server"/> 綁定Text屬性的值,這樣運行是有錯誤的,服務器標記的格式不正確。解決方法1:可以把服務器控件換為Html的radio這樣就不會有問題了,如果用html的控件也出現這個問題,看看是不是加了runat="server",去掉就OK了。
解決方法2:如果必須用服務器端控件的話,需要把"<%#Eval("Answer")%>" 的雙引號改為單引號'<%#Eval("Answer")%>' 外側單引號,里面雙引號就不會出錯了。
還有一種情況可能引號嵌套幾層,這樣運行也會出現錯誤或者直接不識別<%#Eval("Answer")%>' 標記,例如<asp:RadioButton ID="RadioButton5" GroupName="option" runat="server" onclick='getScore("<%#Eval("Answer")%>")'/>,在控件的onclick添加一個js方法getScore需要傳遞一個參數,參數我們想通過后臺動態綁定,這樣雖然不會報錯,但是查看源碼之后發現<%標記沒有識別,我們可以通過string.Format方法來解決如下:<asp:RadioButton ID="RadioButton5" GroupName="option" runat="server" onclick='<%#string.Format("getScore(/"{0}/",/"{1}/")",Eval("Answer"),"A") %>'/>,我們把需要轉義的符號轉義一下,最后就得到我們想要的結果了。
新聞熱點
疑難解答