2012-01-15 3 views
0

イム、ここに私のコードはC#のデータリスト内のラベルから文字列の部分を削除し

<asp:DataListID="itemListNews"runat="server"> 
     <ItemTemplate>  
      <div class="news"> 
       <span class="news-author"><%#DataBinder.Eval(Container.DataItem,"author") %></span> 
       <asp:Label ID="lbTest" runat="server" class="news-text"><%#DataBinder.Eval(Container.DataItem,"news") %></asp:Label> 
      </div> 
     </ItemTemplate> 

私はされています物事のカップルをしようと私はエラーメッセージを得続ける:startIndex must be less than the length of the string.Parameter name: startIndex

foreach (DataListItem item in itemListNews.Items) 
    { 
     Label lbtest = (Label) item.FindControl("lbTest"); 
     lbtest.Text.Remove(10);  
    } 

任意の提案が参考になると

+0

リスト内の*一部の文字列は10文字未満ですか? – dasblinkenlight

+0

文字列は約30-100文字ではありません。文字列の最初の10文字しか表示しません。 – dumbel

答えて

2

まず、あなたの文字列のサイズが大きいテストする必要があります(あなたがそれを再割り当てする必要がありますので、stringは不変である)だけlbtest.Text.Remove(10);は何もしていませんこう

if (lbtest.Text != null && lbtest.Text.Length > 10) 
{ 
    lbtest.Text = lbtest.Text.Remove(10); 
} 

:10よりGERは、また、最後に新しい値を割り当てます。

+0

文字列はこれと同じ長さです。しかし、私はエラーを受け取りません。 – dumbel

+0

@dumbel、確かに10より小さいか等しい長さの文字列がありますが、それらを見つけるために '> 10'を' <= 10'に変更することで見つけることができます。 –

関連する問題