台灣最大程式設計社群網站
線上人數
892
 
會員總數:242929
討論主題:187836
歡迎您免費加入會員
討論區列表 >> C# >> Grid中如何某欄位字太長做截斷展開
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Grid中如何某欄位字太長做截斷展開
價值 : 200 QP  點閱數:157 回應數:8

樓主

wang
門外漢
0 1
20 2
發送站內信


如標題
我產生了一個GridView,然後資料由資料庫倒進來
但其中有某欄位的文字過長,造成Grid整列高度被拉了很長

所以想把它做成
字太長時候截斷變成"... " ,然後點擊"..."可以展開看到全內容

目前是在RowDataBound這個事件中作業,


做完截斷文字後,後面就不知道該如何使"..."變成個Button做展開

煩請大家指點一下
謝謝!


搜尋相關Tags的文章: [ 文字過長 ] , [ GridView ] ,
本篇文章發表於2018-08-08 14:53
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
類似這樣

在 cellenter 或 CellClick

if instr(datagridview1.currentcell.value,"...")>0 then
判斷其中有 ...
end if
本篇文章回覆於2018-08-08 15:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
展開的部份沒有現成的功能
你可以試試提示工具,滑鼠停留在Cell上面可以顯示出來

另外編輯時需要處理

編輯完畢也要再做一次字串截取的處理DataGridView.CellEndEdit
最後建議不要使用常數當索引子,萬一DataGridView加Column你所有用到e.Row.Cells[5]的地方全部要找出來改Index
可以宣告一個變數來放

本篇文章回覆於2018-08-08 15:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

wang
檢舉此回應
P陳 : GridView找不到那兩事件...

春天 :
感謝你的建議
一開始是有想過用ToolTip來處理,不過有時會需要複製內容,ToolTip不太適合
如果用非現成的功能需要怎麼處理呢?
本篇文章回覆於2018-08-09 09:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

dars8184
檢舉此回應
使用DataGridView,不用切字,只改Row高,移動鼠標會自動顯示ToolTip

先設定,固定Row高
this.dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;

在增加
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
//滑鼠停留時展開
this.dataGridView1.AutoResizeRow(e.RowIndex, DataGridViewAutoSizeRowMode.AllCells);
}

private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
{
//滑鼠離開時復原高度
this.dataGridView1.Rows[e.RowIndex].Height = this.dataGridView1.RowTemplate.Height;
}
本篇文章回覆於2018-08-09 13:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

春天
檢舉此回應
你真要做展開的話...目前有個簡單的做法

將e.Row.Cells[5].Text 原始字串保存起來,比如放在 e.Row.Cells[5].Tag

然後DataGridView新增一個 DataGridViewButtonColumn Text用 "..."




本篇文章回覆於2018-08-09 14:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

P陳
檢舉此回應
gridview 是 WebForm 的嗎?因太久沒用 WebForm 的了不是很清楚

#4 的dars8184 建議也有用 CellEnter 應該也是 WinForm ,您再 Google 看看
本篇文章回覆於2018-08-09 20:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

wang
檢舉此回應
對阿,gridview 是 WebForm 的
所以上面那些CellEnter,CellLeave事件目前都找不到,這部分我可能要再GOOGLE確認一下

春天 :
您的意思是增加一行Button欄位,來做文字的截斷控制嗎
那如果讓此Button加入到和文字同一欄位,這樣子有沒有甚麼建議解法?
本篇文章回覆於2018-08-10 09:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

春天
檢舉此回應
硬要擠一起的話 要自己畫Cell...
加油
本篇文章回覆於2018-08-10 11:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.