2015-10-14 53 views
0

我有這行代碼:ASP:複選框服務器標籤不規範

<asp:CheckBox runat="server" id="chkSelected" Checked='<%# Not IsDBNull(Eval("EntityID"))%>' onchange="AssignValues('<%# Eval("EntityID")%>', '<%# Eval("id") %>', document.getElementById(this) );" /> 

它不喜歡什麼,我已經得到了持續了爲AssignValues(...)的參數,但它只是用細Checked='<%# Not IsDBNull(Eval("EntityID"))%>'

我在這裏做錯了什麼?

編輯:最後一個參數應該是控件的.ClientID ...我知道document.getElementById()不會在那裏工作。

+0

您可以使用'this'而不是'document.getElementById(this)' – haraman

+0

是的,這不是它抱怨的是: – MetalPhoenix

+0

它似乎是您的一些記錄沒有entityid - >它是空的。你可以改變爲IF(IsDBNull(Eval(「EntityID」)),-1,Eval(「EntityID」)) – g2000

回答

1

最後一個參數應該是這樣的

onchange='<%# String.Format("AssignValues(\"{0}\", \"{1}\", \"{2}\");", Eval("EntityID"), Eval("id"), this) %>' 

在你的情況下,問題涉及到多個evals和多個報價。然而,多個Eval調用可以使用單個#符號

+0

下次我要嘗試做類似的事情。現在,我最終使用了自定義屬性 - 項目需求發生了變化,因此我不需要客戶端的JavaScript調用。這使得它更簡單。 – MetalPhoenix