我遇到了一个问题,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;
}