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>

Andrewの提案後の私の実装:

public int GetMaxLength(object additionalOptionInfo)
    {
        var option = additionalOptionInfo as TypeXYZ<string>;

        return option != null ? option.MaxFieldLength : 0;
    }
4

1 に答える 1

0

このコードはすべてフロントエンドにあるため、親テーブルの可視性がfalseの場合でも、最大長の評価はヒットします。

私はこのようなことをします:

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 に答える