FineUIPro/Mvc/Core的下個版本(v7.0.0),我們為RenderField增加了ShowToolTip屬性,再也無需僅僅為了一個提示資訊就寫RendererFunction了。
這個需求來自知識星球的網友:https://t.zsxq.com/Z7UjYrB
也就是說,為了給RenderField列增加提示資訊,我們需要透過 RendererFunction 來新增,如下程式碼所示:
// 超連結標籤 - 所學專業 function renderMajor(value, params) { var url = 'http://gsa.ustc.edu.cn/search?q=' + F.urlEncode(value); return F.formatString('<a href="{0}" data-qtip="{1}" target="_blank">{1}</a>', url, F.htmlEncode(value)); }
其中HTML標籤屬性data-qtip會被 FineUI 識別,並在游標移動到目標節點時,顯示提示資訊。
當然這個例子是為了渲染一個超連結,如果需求是生成一個包含提示資訊的普通文字,則同樣需要藉助於RendererFunction:
<f:RenderField HeaderText="所學專業" DataField="Major" RendererFunction="renderMajor" Width="150px" />
對應的列渲染函式:
function renderMajor(value) { return F.formatString('<span data-qtip="{0}">{0}</span>', F.htmlEncode(value)); }
雖然能夠實現功能,但是程式碼卻有點囉嗦。
下個版本,我們會針對這種情況進行最佳化,僅僅透過一個屬性ShowToolTip就能實現上面的功能:
<f:RenderField HeaderText="所學專業" DataField="Major" ShowToolTip="true" ToolTipPosition="TopStart" Width="150px" />
是不是很簡潔,而且還能指定提示資訊的顯示位置(ToolTipPosition)。
頁面顯示效果:
三石出品,必屬精品