c#
  • jquery
  • asp.net
  • 2015-05-19 4293 views 18 likes 
    18
    <ItemTemplate> 
        <tr> 
        <asp:LinkButton ID="btnID" runat="server" 
        ToolTip='The calculated IDs are: ' OnCommand="showIds" 
        CommandArgument='<%# Convert.ToInt32(Eval("Year")) + "," + 
        Convert.ToInt32(Eval("Month")) %>'> 
        <%# Convert.ToInt32(Eval("Count")) - Convert.ToInt32(Eval("LittleCount"))%> 
        </asp:LinkButton> 
        </tr> 
    </ItemTemplate> 
    

    Như bạn có thể thấy văn bản chú giải công cụ là tĩnh. Trong mã phía sau, tôi tính toán và nhận được một số số nguyên (ID) mỗi khi nút trên được nhấp (protected void showIds(object sender, CommandEventArgs e) { .... }) chứa dưới dạng List<ExpressionListDictionary>. (asp: LinkButton được chứa bên trong một asp: ListView)các liên kết được tính toán chú giải công cụ cho nút asp sau khi được nhấp vào nút

    Điều tôi muốn làm là thay đổi tooltip thành công cụ động, chứa tất cả các ID đã nhận được dưới dạng liên kết. (Một cái gì đó như thế này: http://jsfiddle.net/IrvinDominin/jLkcs/5/ - nhưng trong trường hợp của tôi, trước tiên tôi cần nhấp vào nút để tính ID và sau đó tôi cần phải thay đổi văn bản chú giải công cụ từ mã khi cần hiển thị ID tương ứng, dưới dạng liên kết nếu nó có thể)

    Làm cách nào để đạt được điều này?

    +0

    Bạn cũng có thể thêm mã phía sau không? – Bellash

    Trả lời

    5

    Nếu bạn có một lớp (hoặc id hoặc gì đó) để xác định các nút, bạn có thể làm cho tài liệu jQuery sẵn sàng hoạt động để thay đổi chú giải công cụ có id thành liên kết chứa các id. tôi modifyed fiddle của bạn: http://jsfiddle.net/jLkcs/545/

    $(document).ready(function() { 
        $(".myLinkButton").each(function() { 
          createlink(this); 
        }); 
    }); 
    
    function createlink(obj){ 
        var ids= $(obj).attr('title'); 
        var linkHtml="<a href='javascript:alert(" + ids + ")'>link</a>" 
        $(obj).attr('title',linkHtml); 
    } 
    
    3

    Tại sao không chỉ cần điều chỉnh ToolTip trong codebehind trong postback?

    protected void showIds(object sender, CommandEventArgs e) 
    { 
        ((LinkButton)sender).ToolTip = "blahblah"; 
    } 
    
    +1

    Làm cách nào để tôi có thể tạo thuộc tính chuỗi ToolTip của LinkButton chứa một số thẻ html/thuộc tính css, v.v ...? Chỉ cần thêm chúng bên trong dấu ngoặc kép? Tôi cần phải tạo ToolTip này để trông giống như một hộp thoại, tất cả các Id của tôi cần phải giống như một số liên kết. –

    +2

    Đặc tả chú giải công cụ HTML không cho phép bất kỳ HTML nào trong đó, chỉ văn bản thuần túy hiển thị khi bạn di chuột qua phần tử bằng chuột –

    3

    Bạn có thể thiết lập các thuộc tính người gửi nếu CommandEventArgs CommandName là bình đẳng với bạn định nghĩa một

    public void LinkButton_Command(Object sender, CommandEventArgs e) 
        { 
         if (e.CommandName.Equals("showIds")) 
         { 
         // 
         } 
        } 
    

    Dưới đây là một ví dụ làm việc, điều này sẽ làm việc, không kể những gì LinkButton điều khiển người dùng được sử dụng:

    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    
    public partial class _Default : Page 
    { 
        public string btnNoTooltip = "No IDs are calculated"; 
        public string btnTooltip = "The calculated IDs are:"; 
    
        protected void Page_Load(object sender, EventArgs e) 
        { 
    
        } 
    
        public void LinkButton_Command(Object sender, CommandEventArgs e) 
        { 
         if (e.CommandName.Equals("LinkButtonOrder")) 
         { 
          LinkButton lkTrigger = (LinkButton)sender; 
          if (lkTrigger.ToolTip.Equals(btnNoTooltip)) 
          { 
           lkTrigger.ToolTip = btnTooltip + " " + e.CommandArgument; 
          } 
          else 
          { 
           lkTrigger.ToolTip += " " + e.CommandArgument; 
          } 
    
          Random random = new Random(); 
          lkTrigger.CommandArgument = random.Next(0, 100).ToString(); 
    
          Label1.Text = "Triggered: " + e.CommandName + " with Argument " + e.CommandArgument; 
         } 
        } 
    } 
    

    Markup:

    <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
    
    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    
        <h3>LinkButton Command Event Example</h3> 
    
         <asp:LinkButton id="LinkButton1" 
          Text="Order Item Here" 
          CommandName="LinkButtonOrder"    
          ToolTip='No IDs are calculated' 
          CommandArgument="01" 
          OnCommand="LinkButton_Command" 
          runat="server"/> 
    
         <br /> 
    
         <asp:LinkButton id="LinkButton2" 
          Text="Or Order Item Here" 
          CommandName="LinkButtonOrder"    
          CommandArgument="02" 
          ToolTip='No IDs are calculated' 
          OnCommand="LinkButton_Command" 
          Runat="server"/> 
    
         <br /> 
         <br /> 
    
         <asp:Label id="Label1" runat="server"/> 
        <asp:PlaceHolder id="plhInjectId" runat="server" Visible="false"></asp:PlaceHolder> 
    </asp:Content> 
    
    2

    Bạn có thể sử dụng jquery để tạo Mẹo Công cụ trên Trang.

    1. Thêm một trường ẩn để bạn tất cả các ID đã thu được (dấu phẩy sepearted) để asp: ListView
    2. dụng nhất này ẩn trong sự kiện ItemCreated trên máy chủ
    3. thêm một lớp học để nút liên kết của bạn, hãy nói 'ShowHyperlinkOnHover '
    4. Bind sự kiện chuột vào lớp ShowHyperlinkOnHover document.ready function của jquery, điều này sẽ tự động tạo ra đầu công cụ. và sau đó trên đầu công cụ Chuột qua sẽ được hiển thị.

      $(document).ready(function() { 
      $(document).on("mouseenter", ".ShowHyperlinkOnHover", function(this){ 
      // 2 is index of hidden field having comma seperated Ids 
      var dynaToolTip; 
           $(this).parent("td:nth-child(2)").split(',').each(
          function(oneId) dynaToolTip=dynaToolTip+ anyFomationLogic(oneId); 
           ); 
      $(this).attr('title',dynaToolTip); 
      }); 
      }); 
      
    Các vấn đề liên quan