我在過去做過類似的事情,但觸發了生成的表格單元格。我爲表格單元格的rel屬性添加了一個標識符。我使用RowDataBound事件來實現這一點,你應該可以用你的鏈接按鈕做類似的事情。使用內置的jSON序列化程序將信息加載到頁面上,然後使用下面的代碼彈出。
這是我如何序列化我的數據在後面的代碼,很明顯,你需要調整這個你的需求:
//Grab Venue Details using LINQ
var venues = (from evt in futureEvents
select new { VenueID = evt.Venue.VenueID, evt.Venue.Description, evt.Venue.Address.Address1, evt.Venue.Address.Suburb }).Distinct();
//Serialize Venues for use in tool tip
JavaScriptSerializer js = new JavaScriptSerializer();
string json = js.Serialize(venues);
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jSONVenues", "var venues = " + json + ";", true);
樣品JSON
var venues = [{"VenueID":393,"Description":"Dee Why RSL","Address1":"932 Pittwater Road","Suburb":"Dee Why"}];
jQuery的
this.tooltip = function() {
/* CONFIG */
xOffset = 20;
yOffset = 20;
// these 2 variable determine popup's distance from the cursor
// you might want to adjust to get the right result
/* END CONFIG */
/*Set Up hover for table cell change this for you link */
$("[Your Gridview ID or class] tr>td:first-child").hover(function(e) {
/* Get ID From rel attribute */
this.t = $(this).attr("rel");
var offset = $(this).offset();
var venue;
for (i = 0; i < venues.length; i++) {
venue = venues[i];
if (venue.VenueID == this.t) {
i = venues.length + 1;
}
}
$("body").append("<p id='tooltip'><strong>" + venue.Description + "</strong><br>" + venue.Address1 + ", " + venue.Suburb + "</p>");
$("#tooltip")
.css("top", (offset.top + xOffset) + "px")
.css("left", (offset.left + yOffset) + "px")
.fadeIn("fast");
},
function() {$("#tooltip").remove();});
};
// starting the script on page load
$(document).ready(function() {
tooltip();
});
編輯:爲了給出一些上下文,這是用在哪裏用戶選擇要參加的事件,網格顯示場地名稱。懸停在網格單元格上會導致彈出窗口顯示完整的場地細節。
你在做一些太複雜的工作提示嗎?如果只是一點點,請在數據網格綁定過程中爲所有按鈕設置工具提示。如果不止這些,給我們更多的細節。 – Bill
@Bill,我不認爲這是最好的方法,因爲彈出窗口中顯示的數據庫有多個值。此外,我想用CSS代替它的樣式,而不是使用默認瀏覽器工具提示 – Boardy
您的鏈接按鈕是模板列還是數據綁定列? –