2013-04-11 186 views
0

我有一個顯示用戶名,主題和日期的gridview。在.aspx代碼如下所示:限制gridview中綁定字段中顯示的字符數

 <asp:BoundField DataField="UserName" 
      SortExpression="UserName" /> 
     <asp:BoundField DataField="Subject" 
      SortExpression="Subject" /> 
     <asp:BoundField DataField="Date" 
      SortExpression="Date" /> 

如果用戶輸入的拍攝對象,說200個字符,我不想它都顯示否則頁面會被拉伸像瘋了似的。有沒有辦法做一個檢查,以便如果主題不只是說60個字符,其餘的就會被取消,並且......會被附加上?因此,受試者可能從去說:

這是一個realllllllllllllllllllllllly較長的主題

這是一個reallllll ....

我知道如何做到這一點的C#代碼背後但不知道如何操作它在.aspx

+0

使用'TemplateField'和'Eval' – mshsayem 2013-04-11 01:33:13

回答

4

試試這個:

<asp:TemplateField> 
    <ItemTemplate> 
     <%# ((string)Eval("Subject")).Length < 200? Eval("Subject") :((string)Eval("Subject")).Substring(0,200) + "..."%>) 
    </ItemTemplate> 
</asp:TemplateField> 

或者(更乾淨地),你可以(如果可能的話)添加一個屬性到你的數據源項目類,並以正常的方式使用該屬性。說,你的數據源項目類是UserMail;然後添加一個公共財產說TruncatedSubject像:

partial class UserMail 
{   
    public string TruncatedSubject 
    { 
     get 
     { 
      return Subject.Length < 200? Subject : (Subject.SubString(0,200) + " ..."); 
     } 
    }   
} 

那麼你可以使用它(的TruncatedSubject代替Subject)像一個正常的BoundField列。

+0

真棒謝謝! – Kevin 2013-04-11 01:42:17

+0

出於好奇,我如何添加屬性到我的數據源項目類?我真的不知道這甚至意味着什麼 – Kevin 2013-04-11 01:59:02

+0

如果該類是自動生成的(由EF或其他框架),它被標記爲** partial **。你總是可以使用上面的關鍵字_partial_將東西添加到部分類中。有關部分類的更多信息:http://msdn.microsoft.com/zh-cn/library/wa80x488(v=vs.80).aspx – mshsayem 2013-04-11 02:01:49

相關問題