0
我有一個問題,其中MaxLength字段看起來不符合在代碼隱藏中設置的值。綁定到中繼器內的文本框最大長度字段
MaxLength='<%#Convert.ToInt32(Eval("AdditionalOptionInfo.MaxFieldLength"))%>'
如果我設置MaxLength =「10」例如它似乎工作正常。
編輯:全碼
<asp:Repeater ID="rptList" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<div class="asdf">
<asp:LinkButton ID="adsf" CssClass="asdf" CommandArgument='<%#Eval("OptionAvailable")%>' runat="server" OnDataBinding="lnkList_OnDataBinding" OnClientClick="contactDetailOptionClick(this); return false;">
<%#Eval("DisplayText")%>
<table class="tbox" runat="server" visible='<%#Eval("IsAdditionalInfoApplicable")%>'>
<tbody>
<tr>
<td>
<asp:Label runat="server" CssClass="asdf" Text='<%#Eval("AdditionalOptionInfo.InstructionText")%>' />
<br />
<asp:TextBox placeholder='<%#Eval("AdditionalOptionInfo.PlaceHolderText")%>' RetainValueAfterPostback="true" ellipsis="true" AutoComplete="Off" runat="server" MaxLength='<%#Convert.ToInt32(Eval("AdditionalOptionInfo.MaxFieldLength"))%>' />
</td>
</tr>
</tbody>
</table>
</asp:LinkButton>
</div>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
安德魯的建議後,我的實現:
public int GetMaxLength(object additionalOptionInfo)
{
var option = additionalOptionInfo as TypeXYZ<string>;
return option != null ? option.MaxFieldLength : 0;
}
我得到一個空引用異常,因爲它不應該進入,由於IsAdditionalInfoApplicable爲false,這是奇怪... – TheRenoRanger 2013-02-13 19:43:44
我可以推薦或者是在Item_databound上設置最大長度,或者調用方法而不是進行評估。我傾向於將其設置在Item_databound – 2013-02-13 19:52:10
其實,我以爲你最初使用的是中繼器,但現在看起來並不像它。你可以在代碼隱藏中設置文本框的最大長度嗎? – 2013-02-13 19:55:24