单击按钮后,asp按钮的工具提示计算链接

时间:2015-05-19 07:01:25

标签: c# jquery asp.net

<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>

您可以注意到工具提示文本是静态的。在后面的代码中,每次单击上面的按钮(protected void showIds(object sender, CommandEventArgs e) { .... })作为List<ExpressionListDictionary>时,我会计算并得到一些整数(ID)。 (asp:LinkBut​​ton包含在asp:ListView中)

我想要做的是将工具提示更改为动态工具提示,将所有已获取的ID包含为链接。 (像这样:http://jsfiddle.net/IrvinDominin/jLkcs/5/ - 但在我的情况下,我首先需要点击按钮来计算ID,然后我需要从代码中更改工具提示文本,因为它需要显示相应的ID,作为链接,如果可能的话)

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:5)

如果你有一个类(或id或东西)来识别按钮,你可以创建一个jQuery文档就绪函数,用ids将工具提示更改为包含id的链接。 我修改了你的小提琴: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);
}

答案 1 :(得分:3)

为什么不在回发期间简单地调整代码隐藏中的工具提示?

<location path="HomeController/Index">
    <system.web>
        <authorization>
            <allow users="?" />
        </authorization>
    </system.web>
</location>

答案 2 :(得分:3)

如果CommandEventArgs CommandName与您定义的

相等,则可以设置发件人属性
public void LinkButton_Command(Object sender, CommandEventArgs e)
    {
        if (e.CommandName.Equals("showIds"))
        {
        //
        }
    }

这是一个工作示例,这将起作用,不计算使用哪个用户控件LinkBut​​ton:

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;
        }
    }
}

标记:

<%@ 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>

答案 3 :(得分:2)

您可以使用jquery在页面上生成工具提示。

  1. 为所有已获取的ID(逗号分隔)添加一个隐藏字段给asp:ListView
  2. 将此隐藏在服务器
  3. 上的ItemCreated事件中
  4. 在您的链接按钮中添加一个课程,说&#39; ShowHyperlinkOnHover&#39;
  5. 将mouseenter事件绑定到jquery的类ShowHyperlinkOnHover document.ready函数,这将动态生成工具提示。然后将显示鼠标悬停工具提示。

    # Uncomment this line to define a global platform for your project
    platform :ios, "8.0"
    
    def shared_pods
        pod 'SocketRocket'
        pod 'AFNetworking'
        pod 'DateTools'
        pod 'Spotify-iOS-SDK'
    end
    
    target "AppName" do
        shared_pods
    end
    
    target "AppNameTests" do
        shared_pods
    end