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;
    }
4

1 回答 1

0

如果父表的可见性为假,则 max lenth eval 仍然会被命中,因为所有这些代码都位于前端。

我会做这样的事情:

MaxLength='<%# GetMaxLength(Eval("AdditionalOptionInfo.MaxFieldLength"))%>'

public string GetMaxLength(object optionInfo)
{
     TypeOfOptionInfo option = (TypeOfOptionInfo) optionInfo;

     if (option != null)
     {
         return optionInfo.MaxFieldLength;
     }
     else
     {
           return "0";
     }
}
于 2013-02-13T19:26:12.693 回答