2013-02-13 59 views
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; 
    } 

回答

0

最大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"; 
    } 
} 
+0

我得到一個空引用異常,因爲它不應該進入,由於IsAdditionalInfoApplicable爲false,這是奇怪... – TheRenoRanger 2013-02-13 19:43:44

+0

我可以推薦或者是在Item_databound上設置最大長度,或者調用方法而不是進行評估。我傾向於將其設置在Item_databound – 2013-02-13 19:52:10

+0

其實,我以爲你最初使用的是中繼器,但現在看起來並不像它。你可以在代碼隱藏中設置文本框的最大長度嗎? – 2013-02-13 19:55:24

相關問題