我有一箇中繼器。過去,轉發器中的每個項目都有一個關聯的文本框。但是,現在我向重複的項目添加了一個屬性,需要指定該項目是否使用文本框,較大的文本框或複選框。ASP.NET:在if語句中使用Eval
這裏是我的aspx代碼如下所示:
<%if (Eval("DisplayType") == "LargeBox") { %>
<asp:TextBox ID="largeBoxAnswer" Rows="8" runat="server" Width="200" MaxLength="2000" EvaluationQuestionID='<%# Eval("EvaluationQuestionId") %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="largeBoxAnswer" Display="dynamic" Font-Bold="true" ErrorMessage="*" />
<%} %>
<%else if (Eval("DisplayType") == "CheckBox") { %>
<asp:TextBox ID="checkBoxAnswer" runat="server" Width="200" MaxLength="100" EvaluationQuestionID='<%# Eval("EvaluationQuestionId") %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="checkBoxAnswer" Display="dynamic" Font-Bold="true" ErrorMessage="*" />
<%} %>
<%else { %>
<asp:TextBox ID="txtAnswer" runat="server" Width="200" MaxLength="100" EvaluationQuestionID='<%# Eval("EvaluationQuestionId") %>' />
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtAnswer" Display="dynamic" Font-Bold="true" ErrorMessage="*" />
<%} %>
這不是工作,我得到了以下錯誤: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.
我發現了不少關於這個錯誤,但沒有真正幫助解決這個問題。
我是否正在做這樣的事情是正確的方式?我不是超級有經驗的asp.net,所以我願意以不同的方式解決這個問題。如果這是最好的方法,我該如何將邏輯移到後面的代碼中,以便它能正常工作?
所有這些代碼都在一箇中繼器內嗎?如果是這樣,請編輯您的問題併爲其添加標記。 –