2016-08-04 60 views
1

我有一個GridView,並在其中一列顯示名稱列表。 這個列表可能會變長,所以它會導致GridView變得很長,並且會切斷名稱。然後我必須去網格的底部並滾動。使字符串移動到GridView上的下一行

enter image description here

有沒有把休息到Grid打完5名就會使名稱到下一行的方法嗎?該行來自於concats所有的名字轉換成字符串一些SQL代碼:

爲GridView的
(SELECT CAST(group_concat(CONCAT(cc.username)separator ',') AS CHAR(200)) FROM message 

代碼:

public static GridView BuildUserChatsGrid() 
     { 
      GridView NewDg = new GridView(); 

      NewDg.DataKeyNames = new string[] { "ID" }; 
      NewDg.AutoGenerateColumns = false; 
      NewDg.CssClass = "tblResults draggable"; 
      NewDg.HeaderStyle.CssClass = "tblResultsHeader"; 
      NewDg.AlternatingRowStyle.CssClass = "ResultsStyleAlt"; 
      NewDg.RowStyle.CssClass = "ResultsStyle"; 
      NewDg.RowDataBound += ChatsGridDataBound; 

      NewDg.Columns.Add(new BoundField { DataField = "SentDate", HeaderText = "Date/Time" }); 
      NewDg.Columns.Add(new BoundField { DataField = "MembersIncluded", HeaderText = "Members Included" }); 

      NewDg.Width = Unit.Percentage(100.00); 

      return NewDg; 
     } 
+0

有一個名爲'TextWrapping =「WrapWithOverflow」的屬性,可以讓你控制 –

回答

1

固定列的寬度將強制文本換行。您可以以像素爲單位設置的ItemStyle.Width值:

new BoundField { DataField = "FieldName", ItemStyle = { Width = Unit.Pixel(200) } } 

或百分比:

new BoundField { DataField = "FieldName", ItemStyle = { Width = Unit.Percentage(40) } } 

或其他可用單位。

請注意,僅當文本中有空格時纔會進行文字換行。您必須在SELECT查詢的字符串連接中使用', '而不是','

+0

使用'ItemStyle'不起作用。名字仍然顯示在一條長線 – user123456789

+0

哦,你是對的。這是因爲名稱之間沒有空格。你用「',''而不是'',''來分隔名字是可以接受的嗎? – ConnorsFan

+0

你是對的,把工作的空間。謝謝 – user123456789

0

添加ItemStyle.Wrap設置如下:

new BoundField {DataField="FieldName", ItemStyle = {Width = Unit.Pixel(200), Wrap = true}}; 

UPDATE:作爲@ConnorsFan建議,包= true,將沒有任何效果。不過,我建議嘗試爲BoundField指定CssStyle並定義「max-width:200px;」爲那種風格。

+1

明確地設置'Wrap = true'與未在構造函數中指定屬性相同。 'Wrap'屬性的默認值是'true'。 – ConnorsFan

+0

謝謝@ConnorsFan,你是對的! – Artak

相關問題