asp.net (c#)中的可点击标签

本文关键字:标签 net asp | 更新日期: 2023-09-27 18:04:12

我的问题是,我已经创建了一个方法,将返回所有的链接从一个SQL表,我可以把它们传递给一个标签,但我的问题是,这些链接是不可点击的…有办法解决这个问题吗?或者是一种将链接传递到表或其他东西的方法?谢谢你!

代码是这样的:

service1.WebServiceLinks a1 = new service1.WebServiceLinks();
        string result = a1.GetLinks();

        Label1.Text = result;
这是GetLinks()的代码:
public static string GetLinks()
{
    string query = string.Format("SELECT Link FROM Linkovi");
    StringBuilder result = new StringBuilder();
    try
    {
        conn.Open();
        command.CommandText = query;
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            result.Append(reader["Link"].ToString());
        }
        reader.Close();
    }
    finally
    {
        conn.Close();
    }
    return result.ToString();
}

asp.net (c#)中的可点击标签

为什么不使用超链接控件来代替标签呢?它呈现一个链接(锚元素)。所以你应该可以在上面设置可点击链接

既然您已经控制了web服务的两端,那么请帮自己一个忙,返回有意义的信息,而不仅仅是一个巨大的字符串。至少,返回List<string>的集合:

public static List<string> GetLinks()
{
    string query = string.Format("SELECT Link FROM Linkovi");
    List<string> result = new List<string>();
    try {
        conn.Open();
        command.CommandText = query;
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read()) {
            result.Add(reader["Link"].ToString());
        }
        reader.Close();
    } finally {
        conn.Close();
    }
    return result;
}

然后显示结果,使用类似Repeater控件绑定到结果,用HyperLink显示可点击的链接:

<asp:Repeater ID="LinkDisplay" runat="server">
<ItemTemplate>
    <asp:HyperLink ID="TheLink" runat="server"
        NavigateUrl='<%#Container.DataItem%>' Text='<%#Container.DataItem%>'>
    </asp:HyperLink>
</ItemTemplate>
</asp:Repeater>

并将中继器与Page_Load中的结果绑定:

void Page_Load(object sender, EventArgs e) {
    service1.WebServiceLinks a1 = new service1.WebServiceLinks();
    LinkDisplay.DataSource = a1.GetLinks();
    LinkDisplay.DataBind();
}

将其放入锚标记

<a href="your_link" >text</a>

你的<label>标签必须有一个for属性,引用<input>元素的id。一旦你得到了,<label>[应该]是热的和可点击的任何标准兼容的浏览器。

这里有一个你想要的HTML标记的例子:

<li><input id="options-rb1" type="checkbox" name="options" value="1"/><input<label for="options-rb1">&nbsp;Option 1</label></li>
<li><input id="options-rb2" type="checkbox" name="options" value="2"/><input<label for="options-rb2">&nbsp;Option 2</label></li>
<li><input id="options-rb3" type="checkbox" name="options" value="4"/><input<label for="options-rb3">&nbsp;Option 3</label></li>
<li><input id="options-rb4" type="checkbox" name="options" value="8"/><input<label for="options-rb4">&nbsp;Option 4</label></li>

<label>元素不需要与它绑定的<input>元素相邻(甚至接近)